vue中v-model可以實現數據的雙向綁定,但是為什么這個指令就可以實現數據的雙向綁定呢?
其實v-model是vue的一個語法糖。即利用v-model綁定數據后,既綁定了數據,又添加了一個input事件監聽。
實現原理:
1、v-bind綁定響應數據
2、觸發input事件並傳遞數據
簡單案例:
<input v-model="text"></input> // 等價於: <input :value="text" @input="text = $event.target.value"></input> // 組件中使用: <custom-input :value="text" @input="$event"></custom-input> // 根據v-model原理模擬: <input type="text" id="ipt1"> <input type="text" id="ipt2"> <script> var ipt1=document.getElementById('ipt1'); var ipt2=document.getElementById('ipt2'); ipt1.addEventListener("input",function(){ ipt2.value=ipt1.value; }) </script>