新聞中心
基礎(chǔ)用法
你可以用 ?v-model? 指令在表單? ?、?? 及 ?? 元素上創(chuàng)建雙向數(shù)據(jù)綁定。它會根據(jù)控件類型自動選取正確的方法來更新元素。盡管有些神奇,但 ?v-model ?本質(zhì)上不過是語法糖。它負責監(jiān)聽用戶的輸入事件以更新數(shù)據(jù),并對一些極端場景進行一些特殊處理。

目前成都創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設計、武城網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
?
v-model? 會忽略所有表單元素的 ?value?、?checked?、?selected attribute? 的初始值而總是將 Vue 實例的數(shù)據(jù)作為數(shù)據(jù)來源。你應該通過 JavaScript 在組件的 ?data?選項中聲明初始值。
?v-model? 在內(nèi)部為不同的輸入元素使用不同的 property 并拋出不同的事件:
- text 和 textarea 元素使用 ?
value? property 和 ?input?事件; - checkbox 和 radio 使用 ?
checked? property 和 ?change?事件; - select 字段將 ?
value? 作為 prop 并將 ?change? 作為事件。
對于需要使用輸入法 (如中文、日文、韓文等) 的語言,你會發(fā)現(xiàn) ?
v-model? 不會在輸入法組合文字過程中得到更新。如果你也想處理這個過程,請使用 ?input?事件。
文本
實例
在HTML中
文本框內(nèi)的信息: {{ message }}
在JavaScript中
var app = new Vue({
el: '#app',
data: {
message: ''
}
})
運行結(jié)果:
嘗試一下 ?
多行文本
實例
在HTML中
多行文本框內(nèi)的信息:
{{ message }}
在JavaScript中
var app = new Vue({
el: '#app',
data: {
message: ''
}
})
運行結(jié)果:
嘗試一下 ?
注意:在文本區(qū)域插值( ) 并不會生效,應用?
v-model? 來代替。
復選框
單個復選框,綁定到布爾值:
多個勾選框,綁定到同一個數(shù)組:
Checked names: {{ checkedNames }}new Vue({
el: '...',
data: {
checkedNames: []
}
})單選按鈕
Picked: {{ picked }}One
Two
Picked:
選擇列表
單選列表:
實例
在HTML中
{{ message }}
在JavaScript中
var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})
運行結(jié)果:
嘗試一下 ?
Selected: {{ selected }}A B C
Selected:
多選列表(綁定到一個數(shù)組):
實例
在HTML中
{{ message }}
在JavaScript中
var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})
運行結(jié)果:
嘗試一下 ?
Selected: {{ selected }}A B C
Selected: [ "C"]
動態(tài)選項,用 v-for 渲染:
實例
在HTML中
{{ message }}
在JavaScript中
var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})
運行結(jié)果:
嘗試一下 ?
Selected: {{ selected }}new Vue({
el: '...',
data: {
selected: 'A',
options: [
{ text: 'One', value: 'A' },
{ text: 'Two', value: 'B' },
{ text: 'Three', value: 'C' }
]
}
})One Two Three
Selected: A
綁定 value
對于單選按鈕,勾選框及選擇列表選項, v-model 綁定的 value 通常是靜態(tài)字符串(對于勾選框是邏輯值):
實例
在HTML中
{{ message }}
在JavaScript中
var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})
運行結(jié)果:
嘗試一下 ?
但是有時我們想綁定 value 到 Vue 實例的一個動態(tài)屬性上,這時可以用 v-bind 實現(xiàn),并且這個屬性的值可以不是字符串。
復選框
// 當選中時
vm.toggle === vm.a
// 當沒有選中時
vm.toggle === vm.b單選按鈕
// 當選中時
vm.pick === vm.a選擇列表設置
// 當選中時
typeof vm.selected // -> 'object'
vm.selected.number // -> 123修飾符
.lazy
在默認情況下, v-model 在 input 事件中同步輸入框的值與數(shù)據(jù),但你可以添加一個修飾符 lazy ,從而轉(zhuǎn)變?yōu)樵?nbsp;change 事件中同步:
.number
如果想自動將用戶的輸入值轉(zhuǎn)為 Number 類型(如果原值的轉(zhuǎn)換結(jié)果為 NaN 則返回原值),可以添加一個修飾符 number 給 v-model 來處理輸入值:
這通常很有用,因為在 type="number" 時 HTML 中輸入的值也總是會返回字符串類型。
.trim
如果要自動過濾用戶輸入的首尾空格,可以添加 trim 修飾符到 v-model 上過濾輸入:
v-model 與組件
如果你還不熟悉Vue的組件,跳過這里即可。
HTML 內(nèi)建的 input 類型有時不能滿足你的需求。還好,Vue 的組件系統(tǒng)允許你創(chuàng)建一個具有自定義行為可復用的 input 類型,這些 input 類型甚至可以和 v-model 一起使用!要了解更多,請參閱“自定義 input 類型”。
分享標題:創(chuàng)新互聯(lián)VUE2教程:Vue.js2.0表單控件綁定
分享地址:http://fisionsoft.com.cn/article/cdgsgco.html


咨詢
建站咨詢
