【web前端】数据响应式
WEB前端开发社区 昨天
1、概念
var obj={a:3,b:6}
2、实现
//数据响应式的实现function reactive(obj){return new Proxy(obj,{ get(target,key){let res = Reflect.get(target,key);console.log('Proxy.get --> ',key,' --> 侦测到数据被使用')return typeof res ==='object' ? reactive(res) : res; }, set(target,key,value){let res = Reflect.set(target,key,value);console.log('Proxy.set --> ',key,' --> 侦测到数据变化,可以做点什么事情')return res; }, deleteProperty(target,key){let res = Reflect.deleteProperty(target,key);console.log('Proxy.deleteProperty --> ',key,' --> 侦测到数据变化,可以做点什么事情')return res; } })}//测试var obj = reactive({'a':3});obj.aobj.a=5obj.b=6delete obj.aobj.c={ d:666};obj.c.d
PS E:\workspace\reactiveDemo> node indexProxy.get --> a --> 侦测到数据被使用Proxy.set --> a --> 侦测到数据变化,可以做点什么事情Proxy.set --> b --> 侦测到数据变化,可以做点什么事情Proxy.deleteProperty --> a --> 侦测到数据变化,可以做点什么事情Proxy.set --> c --> 侦测到数据变化,可以做点什么事情Proxy.get --> c --> 侦测到数据被使用Proxy.get --> d --> 侦测到数据被使用PS E:\
赞 (0)