Vue监视数据的原理

1、Vue会监视data中所有层次的数据。

2、如何监测对象中的数据?

  通过setter实现监视,且要在new Vue时就传入要检测的数据

    (1)对象中后追加的属性,Vue默认不做响应式。

    (2)如需给后添加的属性做响应式,要使用如下API

       Vue.set(target, propertyName/index, value)

       vm.$set(target, propertyName/index

3、如何检测数组中的数据?

  通过包裹数组更新元素方法实现,本质就是做了两件事:

    (1)调用原生对应的方法对数组进行更新。

    (2)重新解析模板,进行页面更新。

4、在Vue修改数组中的某个元素一定要用如下方法:

  (1)使用这些API:push()、pop()、shift()、unshift()、splice()、sort()、reverse()

  (2)Vue.set() 或 vm.$set()

特别注意:Vue.set() 和 vm.$set() 不能给vm 或 vm的根数据对象 添加属性!!!  

原文地址:https://www.cnblogs.com/bingquan1/p/15773484.html