vue双向绑定原理
vue 双向绑定原理
数据劫持: vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调
**观察着模式(observer) **是一对多的模式,就是他让 Object.defineProperty()的 双向绑定更有效率
Object.defineProperty()
数据劫持 、
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
其实该方法就可以实现简单的双向绑定,但是效率非常低、因为它是直接去操作 dom 节点,效率太低。
它有三个属性:
- 第一个是属性所在的对象
- 第二个是你要操作的属性
- 第三个是被操作的属性的特性
- 这个参数个格式是: {}
- 多使这两个属性
- get :读取属性时触发
- set: 写入属性时触发
- 设置enumerable属性可以让属性是否枚举
>>名词解释
-数据劫持是什么意思
- 通过 Object.defineProperty,去操作数据的 get、set
–实现一个数据监听器 observer,能够对数据对象的所有属性进行监听、
- 比如就是 vue 实例中 的 data 里面的数据
–Object.keys(data)
- 返回一个对象里可以被 for in 到的属性。也就对象的 key,对象的属性组成的数组
–forEach
- 调用数组的每个元素、并传递给参数中的回调函数
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!