v-model 真实的实现原理

2021-02-04  本文已影响0人  糖小羊儿

v-model 是数据双向绑定

<div>
    <button id="myBtn">改变username</button>
    <input type="text" id="myInput">
    <h1 id="myTitle"></h1>
</div>
window.onload=function(){
    let userinfo = {
        username:'小明',
    };
    //开始监控
    watcher();
    function watcher(){
        Object.defineProperty(userinfo, "username", {
        set(value) {
            updateDom(value);
        },
        get(val) {
          return val;
        },
      });
    }
    //更新dom数据
    function updateDom(value){
        document.querySelector('#myInput').value = value;
        document.querySelector('#myTitle').innerHTML = value;
    }
    //给input绑定input事件,实时修改username的值
    document.querySelector('#myInput').oninput=function(e){
        let value = e.target.value;
        userinfo.username = value;
    }
    //给button绑定点击事件,修改username的值
    document.querySelector('#myBtn').onclick=function(){
        let value = '小明';
        userinfo.username = value;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读