Vue的$input指令是一種非常基礎(chǔ)的指令,用來綁定表單輸入(包括文本框、下拉框、多選框等)元素的值,從而實現(xiàn)數(shù)據(jù)的雙向綁定。在Vue中,<$input>指令可用于文本、數(shù)字值、日期等類型的輸入框,而<$select>和<$textarea>指令則可用于各自對應(yīng)的元素。
下面是一個簡單的例子,實現(xiàn)了一個基本的雙向綁定文本框:
// html代碼
<div id="app">
<input v-model="message">
<p>{{ message }}</p>
</div>
// js代碼
var vm = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
在上面的代碼中,<$input>元素通過v-model指令與Vue實例的message屬性進行了數(shù)據(jù)綁定。這意味著,當(dāng)<$input>元素中的值發(fā)生變化時,會自動更新Vue實例中message的值;反過來,當(dāng)Vue實例中的message的值變化時,會同步更新<$input>元素中顯示的值。
另外需要注意的是,v-model指令可以綁定到計算屬性或者組件的prop上,這對于自定義組件來說非常有用。例如:
// html代碼
<div id="app">
<my-component v-model="message"></my-component>
<p>{{ message }}</p>
</div>
// js代碼
Vue.component('my-component', {
props: ['value'],
template: '<input :value="value" @input="$emit(\'input\', $event.target.value)">'
});
var vm = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
在這個例子中,我們創(chuàng)建了一個自定義組件