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来接收
}
这样的话就完成了一个简单的双向数据绑定
不足之处,还望指出