欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue2的数据劫持,Vue3的数据劫持

程序员文章站 2022-07-02 20:28:29
...

Vue2的Object.defineproperty的数据劫持 

<input id="username" />
显示输入的值:<div id="userNames"></div>
//实现数据劫持双向绑定
let obj={};
let name="":
                    对象    对象属性
Object.defineproperty(obj,'username',{
        get:function(){
            return name;
        },
        set:function(val){
            document.getElementById('username').value=val;   
            document.getElementById('userNames').indexText=val;    
            name=val;
        }
    }
}

document.getElementById('username').addEventListen('keyup',function(){
    obj.username=event.target.value;
    console.log(obj.username);
})

Vue3的 Reflect的数据映射

//实现数据劫持双向绑定
let obj={};
let name="":
                    对象    对象属性
Reflect.defineproperty(obj,'username',{
        get:function(){
            return name;
        },
        set:function(val){
            document.getElementById('username').value=val;   
            document.getElementById('userNames').indexText=val;    
            name=val;
        }
    }
}

Reflect.getElementById('username').addEventListen('keyup',function(){
    obj.username=event.target.value;
    console.log(obj.username);
})

相关标签: Vue js Vue