**
使用Object.defineProperty()来进行数据劫持有什么缺点?
**
在对一些属性进行操作时,使用这种方法无法拦截,比如通过下标方式修改数据数据或给对象新增属性,这都不能触发组件的重新渲染,因为object.defineProperty不能拦截到这些操作。更精确的来说,对于数组而言,大部分操作都是拦截不到的,只是Vue内部通过重写函数的方式解决了这个问题。
在Vue3.0中已经不使用这种方式了,而是通过使用proxy对对象进行代理,从而实现数据劫持,使用proxy的好处是他可以完美的监听到任何方式的数据改变,唯一的缺点是兼容性的问题,因为Proxy是ES6的写法。