Immer.js (a library to work on data structures, not a framework) uses a similar concept, using Proxies.
The gist of Immer is that your framework needs immutable structures, but you want to interact with them imperatively.
It's very interesting, and a reversal of the traditional "functional core, imperative shell" architecture.