vue2与vue3双向绑定的实现以及其双向绑定的缺陷
先说缺陷吧
1:递归遍历所有的对象的属性,这样如果我们数据层级比较深的话,是一件很耗费性能的事情
- 2:只能应用在对象上,不能用于数组
- 3:只能够监听定义时的属性,不能监听新加的属性,这也就是为什么在vue中要使用Vue.set的原因,删除也是同理
vue3.0 的双向绑定实现
使用proxy
Proxy 是拦截默认行为,Reflect 是恢复默认行。被 Proxy 拦截、过滤了一些默认行为之后,可以使用 Reflect 恢复未被拦截的默认行为。通常它们两个会结合在一起使用。