vue2 使用的是 Object.defineProperty() 他只能监听一个对象的的浅层,
在使用$set时,为当前对象下的对象也会进行监听
vue2实现的方法主要就是对对象进行遍历操作
然后对其进行监听,如果发生变化触发set函数,然后进行更新视图
vue3 使用的是 Proxy 包裹使用的对象 进行监听,
可以监听数组的变化,且具有多达13种拦截方法。
数据修改时,在set方法中拦截数据,更新视图层
js ES6 Proxy代理器
<https://www.jianshu.com/p/22145f896435>