Skip to content
On this page

响应式2.0与3.0的对比

在Vue2中,是用的 Object.defineProperty,在Vue3中,则是用的proxy

先说 2.0

  1. 2.0 需要对每个属性进行监听,对 data 的属性是遍历 + 递归为每个属性设置 getter 和 setter
  2. 2.0 数组添加元素和长度的变化无法监视到采用的是this.$set(obj,index,value) 的方法
  3. 对象的添加值和删除值,Object.defineProperty 无法观测,采用的是 this.$set(obj,key,value) 的方法

再说 3.0

  1. 弥补了上方所说的 2.0 中包含的 缺点

  2. 采用了 惰性监听,初始化的时候,不再创建 Observer,而是会在用到的时候去监听,效率更高。

Released under the MIT License.