vue3-响应式的原理

2024-03-02  本文已影响0人  东邪_黄药师

1. Object.defineProperty => Proxy()

Vue2.x data中的属性做了遍历 + 递归, 给每一个属性设置getter, setter
data中预定义属性做出响应式

2. Proxy()

//  响应式重要特征 => 需要捕获到修改,做出对应的反应
     let obj = {
         name: '小明',
         age: 18
     }
     const p = new Proxy(obj, {
         // target => 源数据
         // 查
        get(target, propName){
            console.log(`读取了P的${propName}属性`)
            return target[propName]
            // return Reflect.get(target, propName)
        },
        // 改 + 增
        set(target, propName, value){
            console.log(`修改了P的${propName}属性,值为${value}`)
            target[propName] = value
        },
        // 删
        deleteProperty(target, propName){
            console.log(`删除了P的${propName}属性`)
            return delete target[propName] // 真,假
        }
     })

为什么要用 Proxy API 替代 defineProperty API

上一篇 下一篇

猜你喜欢

热点阅读