1、v-model指令的作用
vue中的v-model指令是完成雙向綁定的,用在表單元素上。雙向綁定就是 M會影響V。V也會影響M。即:能將頁面上輸入的值同步更新到相關綁定的data屬性,也會在更新data綁定屬性時候,更新頁面上輸入控件的值。
2、v-model的原理
v-model指令是一個語法糖,是屬性綁定和事件的語法糖。vue會根據(jù)不同的表單元素使用不同的屬性和事件。
如下:
text 和 textarea 元素使用 value property 和 input 事件;
checkbox 和 radio 使用 checked property 和 change 事件;
select 字段將 value 作為 prop 并將 change 作為事件。
以文本框為例剖析原理,以下是代碼:
<!-- V -->
<div id="app">
<!--文本框使用value屬性和input事件-->
<input type="text" v-bind:value="msg" @input="changeMsg" >
</div>
//M:
let vm = new Vue({
el: "#app",
data: {
msg:"hi"
},
methods: {
changeMsg(e){
this.msg = e.target.value;
}
}
})
而,使用v-model來完成以上功能的代碼如下:
<!-- V-->
<div id="app">
<!-- 此處不需要使用value屬性和input事件,直接使用v-mdoel指令即可 -->
<input type="text" v-model="msg" >
</div>
// M:model
let vm = new Vue({
el: "#app",
data: {
msg:"hi"
}
})