vue拦截原理

vue拦截原理主要是通过object的defineProperty实现的,例如:

var obj = {}
Object.defineProperty(obj,"myName",{
  get(){
    console.log("get")
  },
  set(value){
     console.log(value) //修改的属性
  }
})

📢注意vue3的变化:
Object.defineProperty有以下缺点:
1、无法监听ES6的Set、Map变化;
2、无法监听Class类型的数据;
3、属性的新加或者删除也无法监听;
4、数组元素的增加和删除也无法监听;
需要重点注意的是:
针对Object.defineProperty的缺点,ES6 Proxy都能够完美得解决,它唯一的缺点就是对IE不友好,所以vue3在检查到如果是IE的情况下(没错IE11都不支持proxy),会自动降级为Object.defineProperty的数据监听系统。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容