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