Vue双向绑定原理

利用Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现

在Vue3.0中使用Proxy替换Object.defineProperty

  1. Object.defineProperty 无法监控到数组下标的变化,导致直接通过数组的下标给数组设置值,不能实时响应
  2. Object.defineProperty只能劫持对象的属性,需要每个属性每个对象进行遍历。在2.x中,是通过递归和遍历data对象来实现数据监控。如果能直接劫持一个完整的对象更好
  3. Proxy可以劫持整个对象,但是Proxy是ES6的行特性,兼容不好

发表评论

电子邮件地址不会被公开。 必填项已用*标注