vue3响应式原理

  1.通过Proxy(代理):拦截对象中变化的任意属性,包括:属性值的读写、属性的添加、属性的删除等。

  2.通过Reflct(反射):实现对被代理对象的属性操作。

  MSN文档中描述的Proxy和Reflect:

    1.Proxy:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refrence/Gobal-Objecets/Proxy

    2.Reflect:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refrence/Gobal-Objecets/Reflect

  

new Proxy(data,{
    //拦截读取属性值
    get(target,prop){
        return Reflect.get(target,prop)  
    },
    //拦截设置属性值或添加新属性
    set(target,prop,value){
        return Reflect.set(target,prop,value)  
    },
    //拦截删除属性
    deleteProperty(target,prop){
        return Reflect.deleteProperty(target,prop)  
    },
})

proxy.name = "jerry"

  

posted @ 2022-05-31 18:38  清水紅葉  阅读(34)  评论(0编辑  收藏  举报