为什么vue2中数组的7个方法可以实现响应式,其他的方法却不行
你可以理解为Vue直接覆写了一遍数组原型链上的方法,去通知OB数组被改变了。如果你直接修改数组下标则不会触发这些内部API,OB就不会知道这个数组被修改了,就不会去更新视图。
具体可以看这里 vue/array.ts at main · vuejs/vue。
如果你是初学者,可以看B站UP Vue面试题讲解 (数组的变化监听在P1的8分40秒处)这部分的讲解。
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
7 回答1.9k 阅读
9 回答1.7k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答858 阅读
与其提问不如试着看看源码找找。
为什么只有这7个方法——因为这7个方法会修改原数组,
slice
/concat
等都是返回一个新数组,并不修改原数组,无需覆写