- 说到Vue3.0的响应式原理,我们先来了解一下Vue2.x中的响应式是如何实现的?
- vue2.x中的响应式是通过ES5的一个API Object.defindPropert() 对数据进行劫持,再通过get()、set() 方法 对数据进行读取和修改,但是这种方式不能很好的监听到对象中属性的变化以及数组的下标。针对这个问题也是有解决方法的(如下):
- 问题:如果监听对象中某个属性的变化? 如何监听数组的下标?
- 解决:我们可以通过vue.set()、vue.get() 来弥补vue2.0响应式的缺点。
2. Vue3.x中使用了ES6的一个API Proxy对数据进行代理,拦截对象中任意属性的变化,他是 Window内置的一个构造函数,包括增删改查,然后通过Reflect(反射),对源对象进行操作
据说:ECMA正在尝试着把Object很多有用的API移植到 Reflect 上,后续我们可以多了解一下Reflect。