vue中的v-model是实现双向绑定数据的,那么他的javascript代码到底是怎么去实现的呢?
<!--HTML代码-->
<div>
<input type='text' id='text'>
<p id='show'></p>
</div>
要实现这个功能需要用到 Object.defineProperty()这个方法
<script>
let obj={};
//定义属性的对象
//要定义的属性名称
//将被定义的或者修改的属性描述符
Object.defineProperty(obj,'text',{
get:()=>{
return text;
},
set:(newVal)=>{
document.getelementById("text").value=newVal;
docuemnt.getelementById("show").value=newval;
}
})
</script>
需要一个触发事件
document.getElementById("text").addEventListener('keyup',function(e){
obj.text=e.target.value;
})