fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

[vue] 第1570天 参考vue3,手写一个响应式系统

Open haizhilin2013 opened this issue 2 years ago • 1 comments

第1570天 参考vue3,手写一个响应式系统

3+1官网

我也要出题

haizhilin2013 avatar Aug 02 '23 20:08 haizhilin2013

一个非常简单的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)
        }
    })
}

nowo avatar Jun 27 '24 11:06 nowo