简单的双向数据绑定

Vue2.0中的数据双向绑定原理:主要是用到对象的方法Object.defineproperty,话不多说,上代码
基本布局为下:

  <div>
    <input type="text" id="txt"/>
    <h1 id="msg">h1>
  div>

js部分:
Object.defineproperty方法的前两个参数(obj,text)分别为要改变的对象和属性,第三个参数为两个方法get和set,当获取值的时候会触发get方法,当设置值的时候会触发set方法

    var txt= document.getElementById('txt')
    var msg= document.getElementById('msg')
    
    var obj={
     }
    Object.defineProperty(obj,'text',{
     
      get:function(){
     
        
      },
      set:function(data){
     
        msg.innerHTML=data
      }
    })
    txt.oninput=function(){
     
      var value=this.value;
      console.log(value)
      obj.text=value // 这个value为传入set方法中的实参,所以在set方法中要用一个形参data来接收     
    }

这样的话就完成了一个简单的双向数据绑定

不足之处,还望指出

你可能感兴趣的:(javascript)