Proxy监听(Vue3版本)

91 阅读1分钟

BingWallpaper-3.jpg

  • proxy可以理解成,在目标对象之前架设一层拦截,外界对该对象的访问,都必须通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和修改
  • 实现方式: new Proxy(target,handler)
  • target:拦截的目标对象;handler:定义拦截的方法

proxy监听和objectProperty监听优劣势:

object.defineProperty:

  1. 递归遍历所有的对象属性,这样如果我们数据层较深的话,是一件很耗费性能的事情
  2. 只能应用在对象上,不能用于数组
  3. 只能监听定义时的属性,不能监听新加的属性,这也是为什么在Vue中要使用Vue.set的原因,删除也是同理

Proxy:

  1. 可以直接监听数组的修改
  2. 可以直接监听属性的新增和删除
  3. 在深度监听的时候,只有在data对象的属性被访问时,才去对这个属性做监听处理,而不是一次性递归所有的