用d来代理data
const d = new Proxy(data,{
//有人读取p的某个属性时调用
get(target,propName){
console.log(`有人读取了d身上的${propName}属性`)
//return target[propName]
return Reflect.get(target,propName)
},
//有人修改d的某个属性、或给d追加某个属性时调用
set(target,propName,value){
console.log(`有人修改了d身上的${propName}属性,我要更新页面了`)
//target[propName] = value
Reflect.set(target,propName,value)
},
//有人删除d的某个属性时调用
deleteProperty(target,propName){
console.log(`有人删除了d身上的${propName}属性,我要更新界面了`)
//return delete target[propName]
return Reflect.deleteProperty(target,propName)
}
})
vue3利用proxy和Reflect实现响应式的原理
于 2022-02-18 21:56:32 首次发布