
获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
#每天一个知识点# Vue3 为什么选择了 ES6 的 Proxy 来实现响应式监听,而不是 Vue2 中使用的 Object.defineProperty?
原因如下:
1、Proxy 可以监听动态新增或删除的属性,而 Object.defineProperty 只能监听已经存在的属性。
2、Proxy 可以监听数组的变化,并且可以通过 Reflect API 进行拦截和修改数组方法,而
3、Object.defineProperty 对于数组的监听需要进行特殊处理,并且无法直接修改数组方法。
4、Proxy 不需要遍历对象来进行劫持,相比之下 Object.defineProperty 的劫持需要遍历对象所有属性,性能上有一定的损耗。
5、Proxy 可以监听整个对象的变化,而 Object.defineProperty 只能监听对象的某个属性的变化。
原因如下:
1、Proxy 可以监听动态新增或删除的属性,而 Object.defineProperty 只能监听已经存在的属性。
2、Proxy 可以监听数组的变化,并且可以通过 Reflect API 进行拦截和修改数组方法,而
3、Object.defineProperty 对于数组的监听需要进行特殊处理,并且无法直接修改数组方法。
4、Proxy 不需要遍历对象来进行劫持,相比之下 Object.defineProperty 的劫持需要遍历对象所有属性,性能上有一定的损耗。
5、Proxy 可以监听整个对象的变化,而 Object.defineProperty 只能监听对象的某个属性的变化。
展开
评论
7
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章