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 协议 ,转载请注明出处!