VUE3.0 响应式原理
- 通过Proxy(代理): 拦截对象中任意属性的变化,包括属性的读取、添加、删除、修改。
- 通过Reflec(反射): 对源对象的属性进行操作
- Reflect快速了解
let person = {
name: '张三',
age: 25
}
const p = new Proxy(person,{
// 读取p的属性 prop时调用
get(target,prop){
//return target[prop]
return Reflec.get(target,prop)
},
// 修改、新增p的某个属性值调用
set(target,prop,value){
//target[prop] = value
return Reflec.set(target,prop,value)
},
// 删除p的某个属性时调用,返回删除结果 true | false
deleteProperty(target,prop){
//return delete target[prop]
return Reflec.deleteProperty(target,prop)
}
})