vue2数组并没有使用Object.defineProperty重新定义数组的每个属性,vue中是怎么检测到数组的变化?

vue2缺陷
无法监测数组的新增
无法监测用索引改变数组的操作

方法:
push,pop,shift,unshift,sort,splice,reverse

1.数组的方法(以上7个)都可以更改了数组的内容,然后更新就好了

2.vue中对数组的原型方法进行了重写,使用函数劫持的方式,重写了数组的方法

3.vue 将 data 中的数组,进行了原型链重写。通过原型链指向了自己定义的数组原型方法,这样当调用数组 api 时,可以通知依赖更新.如果数组中包含着引用类型。会对数组中的引用类型再次进行监控。

实际用vue开发时,对于响应式数组,使用push、splice、pop等方法改变数组时,页面会及时体现这种变化

Vue3是用Proxy来进行对象、数组的代理

Logo

前往低代码交流专区

更多推荐