vue2和vue3的数据双向绑定小测试

23 篇文章 0 订阅
23 篇文章 0 订阅
 const person = {
                name: 'xiaoyang',
                age: 12,
            };

            // 1. vue2的属性劫持
            let p = {};
            Object.defineProperty(p, 'name', {
                configurable: true,
                get() {
                    console.log('读取了name属性');
                    return person.name;
                },
                set(value) {
                    console.log('设置了name属性');
                    person.name = value;
                },
            });

            // 2. vue3的属性代理
            const p = new Proxy(person, {
                get(target, prop) {
                    console.log(`有人读取了${prop}属性`);
                    // return target[prop]
                    return Reflect.get(target, prop);
                },
                set(target, prop, value) {
                    console.log(`有人设置了${prop}属性`);
                    // target[prop] = value;
                    return Reflect.set(target, prop, value);
                },

                defineProperty(target, prop) {
                    // return delete target[prop]
                    return Reflect.deleteProperty(target, prop);
                },
            });
    ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值