一、Vue 会监视 data 中所有层次的数据
person: {name: 'mary',friends: [{name: 'bob', age: 18},{name: 'smith', age: 19}]
}
// 在 vm 上,都会为之配置 getter 和 setter 来检测数据
二、监测对象中的数据
- data 后追加的属性,Vue 默认不做响应式处理
data: {...}
- 如需给后添加的属性作响应式,请使用如下 API:
Vue.set(target, propertyName/index, value) 或者
vm.$set(target, propertyName/index, value)
三、监测数组中的数据
-
调用原生对应的方法对数组进行更新
-
重新解析模板,进而更新页面
四、修改数组中的元素
- 使用能
改变原数组
的原生方法
push()、pop()、shift()、unshift()、splice()、sort()、reverse()
- 不能改变数组,但能
返回一个新数组
替换原数组也可以
filter()、concat()、slice()
- 使用 vue 或者 vue 实例对象上的
Vue.set() 或 vm.$set()
// 特别注意:Vue.set() 和 vm.$set() 不能给 vm 或 vm 的根数据对象 添加属性!!!