vue3响应式原理:Proxy + Reflect,代码示例
// 目标对象
const user = {
name: '小小',
age: 20,
wife: {
name: '小明',
age: 19
}
}
// 把目标对象变成代理对象
const proxyUser = new Proxy(user, {
// 获取
get(target, prop) {
console.log('get方法调用了')
console.log(target)
return Reflect.get(target, prop)
},
// 新增、修改
set(target, prop, val) {
console.log('set方法调用了')
return Reflect.set(target, prop, val)
},
// 删除
deleteProperty(target, prop) {
console.log('delete方法调用了')
return Reflect.deleteProperty(target, prop)
}
}