我们需要 destroy/disconnect 一个 Vue.observable 吗?

do we need to destroy/disconnect a Vue.observable?

我们是否需要销毁或断开使用 Vue.observable() 时创建的可观察对象?

https://vuejs.org/v2/api/#Vue-observable

通常,销毁任何新对象并清除超时以及任何可能导致 beforeDestroy 上的内存泄漏的内容都是一个好习惯。 但我想知道内部 Vue Observer 实例是否也被组件销毁的内部机制销毁(如组件本身),如果不是如何正确停止观察并摆脱这些数据?

即使查看了 Vue 的源代码,我仍然不清楚是否应该销毁 Observer。 Observer class(在 Vue.observable() 内部创建)似乎没有任何停止观察的方法,并且在官方 Vue 文档中没有记录。

请提供您的答案的参考,以便我了解更多信息。

在使用某些浏览器 API 时需要清理,这些浏览器会在 JavaScript 运行时(如 setInterval)之外创建资源,或者在使用 non-Vue 库时创建新的 DOM 个节点。

Vue.observable 只需修改使用 Object.defineProperty() - result of the call is same JS object. And because JS is garbage collected language/runtime 传递的对象,不需要手动 cleanup/destroy。当没有引用对象时,运行时(无 Vue)会自动收集对象。

Vue 3 reactive() 不同,因为调用的结果是新对象 - proxy - 但它仍然是普通的 JS 对象,所以它会自动被垃圾收集...