拦截器proxy
-
vue3.0放弃defineProperty,使用es6的原生拦截器proxy—–proxy的13种拦截操作
object.defineProperty的缺点:
1、监控数组下标的变化时,开销很大
2、它只能劫持对象的属性,所以它需要遍历对象的每个属性,如果属性值是对象,那么需要深度遍历,而proxy是直接代理对象,不需要遍历操作
3、它对新增属性需要手动进行Observe,vue2需要使用vm.$set才能保证新增的属性也是响应式
object.defineProperty的缺点:
1、监控数组下标的变化时,开销很大
2、它只能劫持对象的属性,所以它需要遍历对象的每个属性,如果属性值是对象,那么需要深度遍历,而proxy是直接代理对象,不需要遍历操作
3、它对新增属性需要手动进行Observe,vue2需要使用vm.$set才能保证新增的属性也是响应式