В js есть proxy.
https://learn.javascript.ru/proxyЕсли proxy меняется, вызываются спец свойства из handler, там их целый список. Например в методе set можно вызвать какую-то функцию, которая поменяет какие-то другие переменные.
Получится, что js смотрит в твой объект proxy, и если он поменялся - вызовет какую-то функцию. Почти как useEffect, только вместо dependences будет объект proxy