1.object.defineProperty
缺点:
动态添加的属性是不会被劫持的(不会被双向数据绑定)。
解决:this.$set();
动态删除对象的某个属性,删除操作不会是响应式的。
解决: this.$delete()
若是数组,object.defineProperty天生就无法劫持到数据的下标以及长度。
![](https://i-blog.csdnimg.cn/blog_migrate/33bdbfaaccc8735af0541a418c027be0.png)
2.proxy
优点:
代理的是一个对象。
缺点:
es6中的proxy不支持低版本浏览器。
使用:
![](https://i-blog.csdnimg.cn/blog_migrate/cef0f1eef194d536198cd09e58cc2d25.png)
动态添加的属性是不会被劫持的(不会被双向数据绑定)。
解决:this.$set();
动态删除对象的某个属性,删除操作不会是响应式的。
解决: this.$delete()
若是数组,object.defineProperty天生就无法劫持到数据的下标以及长度。
代理的是一个对象。
es6中的proxy不支持低版本浏览器。