废话不多说直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>
<p>VUE 2.0 双向数据绑定 实现</p>
<div>
<p>span:<span id=spanName></span></p>
<input type="text" id=iptName>
</div>
</div>
</body>
</html>
var obj = {
name:""
}
var newObj = JSON.parse(JSON.stringify(obj));
Object.defineProperty(obj,"name",{
get(){
return newObj.name
},
set(val){
if(newObj.name==val) return
newObj.name = val
observer()
}
})
setTimeout(()=>{
obj.name = "liangzhenmeng"
},1000)
function observer(){
iptName.value = obj.name
spanName.innerHTML = obj.name
}
iptName.oninput = function(){
console.log(this.value)
obj.name = this.value
}