用另一种方法扩展 JavaScript (Vuejs3) 代理

Extend JavaScript (Vuejs3) proxies with another method

Vue3 使用代理来包装对象数据属性。

我有几个这样的对象,我想在其中为代理本身添加额外的功能,即在某些情况下监视 get。有没有办法扩展 Vue 创建的 proxy 对象,或者是否为时已晚,因为在创建 proxy 对象时必须在回调中传递所有这些功能?

如果可能的话,我想避免将一个代理包装在另一个代理中。


更新

我确实尝试过将我的对象包装在代理中。当 Vue 添加它的代理时,这导致了非常糟糕的事情发生,包括一些我仍然不确定是否应该可行的事情 - 在调试器中单步执行每一行,一旦一行试图访问数据 属性 当前 运行 函数将不再是 运行。没有错误,没有冻结应用程序,甚至没有警告级别的消息。应用程序根本无法通过当前函数中的那一行。

我也有类似的需求。我有自己的代理,但问题是它们没有反应,并且不会监视对基础目标的任何更改。我设法通过以下方式使我的代理具有反应性:

const target = {}

const reactiveProxy = reactive( new Proxy( reactive(target), { /*...*/ }) )

希望这也适用于您的用例。