vue2.0 怎样监测对象、数组
❓:1. 如何监测对象中的数据?
通过setter实现监视,且要在new Vue 时传入监测的数据
(1)、 对象中后追加的属性,vue默认不做响应式处理
(2)、 如需给后添加的属性做响应式处理,使用如下方式
/* Vue.set(target,propertyName/index,value) */
Vue.set(obj, 'newKey', value)
Vue.set(obj, ['newKey'], value)
Vue.$set(obj, {newKey: value})
Vue.$set(obj, ['newKey'], value)
❓:2. 如何监测数组中的数据
通过包裹数组更新元素的方法实现,本质就两件事:
(1)、 调用原生对应的方法去对数组进行更新
(2)、 重新解析模版,从而更新页面
// 通过push、pop、shift、unshift、splice、sort、reverse等方法实现监视
// Vue.set() / Vue.$set()
// 注意: Vue.set() / Vue.$set() 不能给vm / vm 的根数据对象 添加属性