Vue响应式:
生成vue实例时,data中的属性都加上getter,setter方法
Vue.set(target,key,value)//向Vue响应式对象中添加响应式数据·,
target:添加目标,添加属性的上级,
key:属性,
value:属性值
局限:.set()的target不能时vm和data;
Vue监视数据的原理:
- vue会监视data中所有层次的数据。
- 如何监测对象中的数据?
通过setter实现监视,且要在new Vue时就传入要监测的数据。
(1).对象中后追加的属性,Vue默认不做响应式处理
(2).如需给后添加的属性做响应式,请使用如下API: Vue.set(target,propertyName/index,value) 或 vm.$set(target,propertyName/index,value) - 如何监测数组中的数据?
通过包裹数组更新元素的方法实现,本质就是做了两件事:
(1).调用原生对应的方法对数组进行更新。
(2).重新解析模板,进而更新页面。 - 在Vue修改数组中的某个元素一定要用如下方法:
1.使用这些API:push()、pop()、shift()、unshift()、splice()、sort()、reverse()
2.Vue.set() 或 vm. s e t ( ) ∗ ∗ ∗ V u e . s e t ( ) 和 v m . set() ***Vue.set() 和 vm. set()∗∗∗Vue.set()和vm.set() 不能给vm 或 vm的根数据对象 添加属性!!!***