0%

Vue监视数据原理

Vue监视数据原理

1 Vue会监视data中所有层次的数据(递归)

2 如何监视对象中的数据?

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

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

(2)如需给后续添加的属性左响应式,请使用下面的API:

​ Vue.set(target,propertyName/index,value):target不允许是Vue实例或者vm中的data对象

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

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

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

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

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

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

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

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

非变更方法,例如 filter()concat()slice()。它们不会变更原始数组,而总是返回一个新数组。当使用非变更方法时,可以用新数组替换旧数组: