Vue3为什么使用Proxy
- 弥补了
defineProperty
的两个不足。- 动态创建的
data
属性需要使用Vue.set
来赋值,Vue3用了Proxy就不需要了。 - 基于性能考虑,Vue2篡改了数组的7个API,Vue3用了Proxy就不需要了。
- push()
- pop()
- shift()
- unshift()
- splice()
- sort()
- reverse()
- 动态创建的
defineProperty
需要提前递归遍历data
做到响应式,而Proxy可以在真正用到深层数据的时候在做响应式(惰性)