1.vue会监视data中所有层次的数据
2.如何监视对象中的数据?
? ? ? ? 在vue2中,通过Object.defineProperty数据代理中的setter方法进行监视数据的更新
? ? ? ? 在vue3中,通过new proxy数据代理中的set方法监视数据的更新,deleteProperty方法
? ? ? ? 监视数据的删除
? ? ? ? 在浏览器中,Object.oberseve已经被删除,替代的是proxy
3.如何监视数组中的数据?
? ? ? ? 通过包裹数组更新元素的方法实现,本质就是做了两件事:
? ? ? ? (1)调用原生对应的方法对数组进行更新
? ? ? ? (2)重新解析模板,进而更新页面
4.在Vue修改数组中的某个元素需要使用如下方法:
? ? ? ? 1.使用vue中提供给数组自身的API:如push()、pop()、shift()、unshift()、splice()
? ? ? ? ?reverse()
? ? ? ? 2.Vue.set()或者vm.$set()
特别注意:set方法不能给vm或vm的根数据对象设置属性,只能给根数据对象中嵌套的对象设置属性
? ? ? ? 如:
????????????????//someObject为嵌套在data数据对象内的一个对象
????????????????Vue.set(vm.someObject, 'b', 22) vm.$set(this.someObject,'b',22)