Vue监视数据的原理

228 阅读1分钟

1.vue会监视data中所有层次的数据。

2.如果监测对象中的数据?

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

a.对象中后追加的属性,vue默认不做响应式处理

b.如需给后添加的属性做响应式,请使用如下API:

Vue.set(target,propertyName/index,value)或者vm.$set(target,propertyName/index,value)

3.如何监测数组中的数据?

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

a.调用原生对应的方法对数组进行更新。

b.重新解析模板,进而更新页面。

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

a.使用这些API:push(),pop(),shift(),unshift(),splice(),sort(),reverce()

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

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