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"