一、vue监听数组的变化
vue能购监听到数组变化的场景
- 通过赋值的形式改变正在被监听的数组;
- 通过splice(index, num, val) 的形式改变正在被监听的数组;
- 通过数组的push的形式改变正在被监听的数组。
vue无法监听数组变化的场景
- 通过数组索引改变数组元素的值;
- 改变数组的长度;
vue无法监听数组变化的场景
- this.$set(arr, index, newVal);
- 通过splice(index,num,val);
- 使用临时变量作为中转,重新赋值数组;
二、vue监听对象的变化
vue能够监听到对象变化的场景
- 通过直接赋值的场景。eg:watchObj = {name:“zyk”}
vue无法监听到对象变化的场景
- 对象的增加、删除、修改无法被vue监听到
vue解决无法监听对象变化的方法
- 使用 this.$set(object, key, value)(vue 无法监听 this.set 修改原有属性)
- 使用Object.assign(),直接赋值的原理;(推荐使用)