转自:vue.js关于Object.defineProperty的利用原理 https://www.jianshu.com/p/07ba2b0c8fca     

 把一个普通对象(a={b:1})传给 Vue 实例作为它的 data 选项,Vue.js 将遍历它的属性,用Object.defineProperty 将它们转为 getter/setter,如图绿色的部分所示。每次用户更改data里的数据的时候,比如a.b =1,setter就会重新通知Watcher进行变动,Watcher再通知Directive对dom节点进行更改。

Vue双向绑定


转自:vue追踪变化


    因为 Vue 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue 转换它,这样才能让它是响应的。

vm.b = 2    // vm.b` 是非响应的Vue 不允许在已经创建的实例上动态添加新的根级响应式属性

Vue.set(vm.someObject, 'b', 2) //可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上

this.$set(this.someObject,'b',2)    //还可以使用 vm.$set 实例方法,这也是全局 Vue.set 方法的别












相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-03-31
  • 2021-12-20
  • 2022-01-04
  • 2021-06-07
  • 2021-05-22
  • 2021-04-18
猜你喜欢
  • 2022-12-23
  • 2021-12-26
  • 2021-08-01
  • 2021-09-03
相关资源
相似解决方案