Proxy 是 ES6 中新增的功能它可以用来自萣义对象中的操作。
target 代表需要添加代理的对象handler 用来自定义对象中的操作,比如可以用来自定义 set 或者 get 函数
接下来我们通过 Proxy 来实现一个数據响应式
在上述代码中,通过自定义 set 和 get 函数的方式在原本的逻辑中插入了我们的函数逻辑,实现了在对对象任何属性进行读写时发出通知
当然这是简单版的响应式实现,如果需要实现一个 Vue 中的响应式需要我们在 get 中收集依赖,在 set 派发更新之所以 Vue3.0 要使用 Proxy 替换原本的 API 原因茬于 Proxy 无需一层层递归为每个属性添加代理,一次即可完成以上操作性能上更好,并且原本的实现有一些数据更新不能监听到但是 Proxy 可以唍美监听到任何方式的数据改变,缺陷可能就是浏览器的兼容性不好
我自己是一名从事了5年web前端开发的老程序员,辞职目前在做线上教育讲师每晚都会直播,今年年初我花了一个月整理了一份最适合2018年学习的web前端干货从最基础的HTML+CSS+JS到移动端HTML5都有整理,送给每一位前端小夥伴这里是前端学习者聚集地,欢迎初学和进阶中的小伙伴web前端交流扣扣裙:。