Vue对象变化侦测如何实现成长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计889个文字,预计阅读时间需要4分钟。
数据观察者+Vue中的对象变化探测是通过Object.defineProperty实现的,但Object.defineProperty存在缺陷,例如不能直接代理整个对象,每次都必须遍历对象的所有属性。
数据观察
Vue 中的对象变化侦测是通过Object.definePorperty实现的,但是Object.definePorperty的方式有缺陷,比如不能直接代理整个对象,每次都要循环遍历对象的所有属性;尤大大说之后会使用 ES6 中的Proxy 重写这个部分。这篇博客介绍的是 Object.definePorperty 实现的对象侦测。
我们来看下面这段代码,定义一个 defineReactive 函数,使用 Object.definePorperty 遍历对象对象属性的时候,设置 get 和 set;当对象属性被读取的时候触发 get,对象属性被设置的时候触发 set。这样就完成了对 data 的数据劫持,因为 Vue 的思想是响应式的,我们还需要收集这些变化。
本文共计889个文字,预计阅读时间需要4分钟。
数据观察者+Vue中的对象变化探测是通过Object.defineProperty实现的,但Object.defineProperty存在缺陷,例如不能直接代理整个对象,每次都必须遍历对象的所有属性。
数据观察
Vue 中的对象变化侦测是通过Object.definePorperty实现的,但是Object.definePorperty的方式有缺陷,比如不能直接代理整个对象,每次都要循环遍历对象的所有属性;尤大大说之后会使用 ES6 中的Proxy 重写这个部分。这篇博客介绍的是 Object.definePorperty 实现的对象侦测。
我们来看下面这段代码,定义一个 defineReactive 函数,使用 Object.definePorperty 遍历对象对象属性的时候,设置 get 和 set;当对象属性被读取的时候触发 get,对象属性被设置的时候触发 set。这样就完成了对 data 的数据劫持,因为 Vue 的思想是响应式的,我们还需要收集这些变化。

