知识点:
1:定义的data变成vm中的_data需要经过两步,①加工data②vm_data = data。
2:例如:当data中的name改变时,setter就会调用(setter里面写了一个调用,这个调用就能够重新解析模板),setter调用就会重新解析模板,重新解析模板就会生成新的虚拟dom,新旧虚拟dom对比,更新页面。
3:vue会监视data中所有层级的数据。
4:如何监视对象中的数据?
- 通过setter实现监视,且要new Vue时,就传入要监测的数据。
①对象中后追加的属性,Vue默认不做响应式处理。
②如需给后添加的属性做响应式,请使用如下API:
Vue.set(target,propertyName/index,value);
vm.$set(target,propertyName/index,value);
5:如何监视数组中的数据? - 通过包裹(数组更新元素的方法),去实现。本质上做了两件事:
①调用原生的方法对数组进行更新。
②重新解析模板,进而更新页面。
6:在Vue修改数组中的某个元素一定要用如下方法:
①使用这些API:push(),pop(),shift(),unshift(),sort(),reverse(),splice()
②使用vue.set或vm.$set
备注:vue.set或vm.$set不能给vm或vm的根数据对象(_data)添加属性。
网友评论