Как отслеживать смену значений в объекте?
Заворачиваете свой объект в Proxy:

const obj = {
  a: 69,
  b: 187,
  c: 666,
};
    
const proxy = new Proxy(obj, {
  set(target, key, val) {
    console.log(`${key} changed from ${target[key]} to ${val}`);
    target[key] = val;
    return true;
  },
});
Дальше вместо исходного объекта работаете с экземпляром Proxy.
const obj = { name: 'Boris', age: 5};

// переназначить свойство с геттерами и сеттерами
// ниже очччень сокращённый пример
Object.defineProperty(obj, "name", {
  set(newName) {
    console.log("Name changed to", newName);
  }
});

// проверяем:
obj.name = "Toster"; // в консоль выведет "Name changed to Toster"на деле нужно сохранить начальное значение, где-то хранить значение свойства name, и добавить геттер. Т.к. вероятно, не единственное свойство захочется так подменить, лучше будет воспользоваться «оптовым» Object.defineProperties() или в цикле по свойствам объекта каждое сделать реактивным интерактивным.

Подробнее см. примеры для Object.defineProperty()