Skip to content

7.Vue 中如何检测数组变化?

1.1 Vue2 中采用重写数组方法的方式

  • 数组考虑性能原因没有用defineProperty对数组的每一项进行拦截,而是选择重写数组(push,shift,pop,splice,unshift,sort,reverse)方法。数组中如果是对象数据类型也会进行递归劫持

1.2 Vue3 直接采用的是 Proxy

  • 在 Vue 3.x 中,直接使用 Proxy 实现了更高效精确的数组变化检测,通过 Proxy,Vue 可以捕获到数组索引和长度的变化,不再需要重写数组的方法。这是 Vue 3.x 在性能方面的一个重要改进(但是由于代理问题,还需要对部分检测方法进行重写)。

Vue2 数组重写Vue3 数组重写

Released under the MIT License.