Vue input控件通過value綁定動態(tài)屬性及修飾符的方法
對于單選按鈕,勾選框及選擇列表選項, v-model 綁定的 value 通常是靜態(tài)字符串(對于勾選框是邏輯值):
<!-- 當(dāng)選中時,`picked` 為字符串 "a" --> <input type="radio" v-model="picked" value="a"> <!-- `toggle` 為 true 或 false --> <input type="checkbox" v-model="toggle"> <!-- 當(dāng)選中時,`selected` 為字符串 "abc" --> <select v-model="selected"> <option value="abc">ABC</option> </select>
但是有時我們想綁定 value 到 Vue 實例的一個動態(tài)屬性上,這時可以用 v-bind 實現(xiàn),并且這個屬性的值可以不是字符串。
舉個最容易認(rèn)知的例子
<input type="radio" v-model="pick" v-bind:value="a"> //當(dāng)只有v-model的情況下,我們綁定了VUE實例中的pick這個數(shù)據(jù),而這數(shù)據(jù)往往都是字符串或者是邏輯值,而如今通過v-bind綁定value,意味著,value是一個可變的數(shù)據(jù) a,而不是字符串'a',而v-model在這個控件選定后的值就是指向value,而用v-bind綁定后,指向的值又是一個動態(tài)屬性,所以此時就可以通過a這個動態(tài)屬性來更改v-model綁定的值,其他的控件也是如此,比如select等 // 當(dāng)選中時 vm.pick === vm.a
.lazy
在默認(rèn)情況下, v-model 在 input 事件中同步輸入框的值與數(shù)據(jù) (除了 上述 IME 部分),但你可以添加一個修飾符 lazy ,從而轉(zhuǎn)變?yōu)樵?change 事件中同步:
//測試是在失去焦點的時候才更新,而不是實時更新
<input v-model.lazy="msg" >
.number
如果想自動將用戶的輸入值轉(zhuǎn)為 Number 類型(如果原值的轉(zhuǎn)換結(jié)果為 NaN 則返回原值),可以添加一個修飾符 number 給 v-model 來處理輸入值:
<input v-model.number="age" type="number"> {{typeof age}}//如果輸入的是字符串則是string,如果是數(shù)字字符串則轉(zhuǎn)換成number
這通常很有用,因為在 type=”number” 時 HTML 中輸入的值也總是會返回字符串類型。
.trim
如果要自動過濾用戶輸入的首尾空格,可以添加 trim 修飾符到 v-model 上過濾輸入:
<input v-model.trim="msg">
以上所述是小編給大家介紹的Vue input控件通過value綁定動態(tài)屬性及修飾符的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Vue2?Observer實例dep和閉包中dep區(qū)別詳解
這篇文章主要為大家介紹了Vue2?Observer實例dep和閉包中dep區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法
這篇文章主要介紹了Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06vue?MVVM雙向綁定實例詳解(數(shù)據(jù)劫持+發(fā)布者-訂閱者模式)
使用vue也好有一段時間了,也算對其雙向綁定原理也有了解個大概,這篇文章主要給大家介紹了關(guān)于vue?MVVM雙向綁定(數(shù)據(jù)劫持+發(fā)布者-訂閱者模式)的相關(guān)資料,需要的朋友可以參考下2022-03-03vue + socket.io實現(xiàn)一個簡易聊天室示例代碼
本篇文章主要介紹了vue + socket.io實現(xiàn)一個簡易聊天室示例代碼,具有一定的參考價值,有興趣的可以了解一下。2017-03-03