data() {
return {
arr: [1, 2, 3],
};
},
watch: {
arr(val) {
console.log('watch arr', val);
},
},
created() {
this.arr[0] = 'a'; // 能成功修改arr数组,但不会被watch
this.arr.push(0); // 能成功修改arr数组,并会被watch
console.log(this.arr); // ["a", 2, 3, 0, __ob__: Observer]
}
- 结论:
this.arr[0] = 'a' 这种方式修改在data中注册过的(带有__ ob __ 属性的)数组,是可以修改成功的,只是不能监听到这个变化。