fe-interview
fe-interview copied to clipboard
[vue] 第1570天 参考vue3,手写一个响应式系统
一个非常简单的reactive代码
/**
* vue3 reactive函数的伪代码
* @param obj 数据对象
* @returns 返回一个响应式Proxy对象数据
*/
function reactive<T extends object>(obj: T) {
return new Proxy(obj, {
// 原始对象、属性名和接收者(或叫代理对象)
get(target, key, receiver) {
// console.log(target, key, receiver)
return Reflect.get(target, key, receiver)
},
// 原始对象、属性名、属性值和接收者(代理对象)
set(target, key, val, receiver) {
console.log(target, key, val, receiver)
return Reflect.set(target, key, val, receiver)
}
})
}