官术网_书友最值得收藏!

5.1.5 值綁定

通常情況下,對于text、radio、select組件,通過v-model綁定的值都是字符串。checkbox除外,checkbox值可能是布爾值。有時我們會有動態綁定Vue.js實例屬性的需求,這時可以使用v-bind來實現這個需求(通過v-bind來代替直接使用value屬性)。我們還可以綁定非字符串的值,如數值、對象、數組等。

v-model用來在View與Model之間同步數據,但是有時候需要控制同步發生的時機,或者在數據同步到Model前將數據轉換為Number類型。此時,可以在v-model指令所在的form控件上添加相應的修飾指令來實現這個需求。v-model修飾指令有以下幾個。

1.lazy

在默認情況下,v-model在input中同步輸入框的值與數據,可以添加一個lazy特性,從而改為在change事件中去同步。代碼如下:

    <input v-model="msg" lazy>
    {{msg}}
2.debounce

設置一個最小的延時,在每次敲擊后延時同步輸入框的值到Model中。如果每次更新都要進行高耗操作(例如,在提示中輸入Ajax請求),它較為有用。代碼如下:

    <input v-model="msg" debounce="300">

上述代碼表示,在用戶輸入完畢300ms后,vm.msg才會被更新。

提示:該指令是用來延遲同步用戶輸入的數據到Model中,并不會延遲用戶輸入事件的執行。因此,如果想要獲取變化后的數據,應該使用vm.$watch()來監聽msg的變化,而不是在事件中獲取最新數據。

3.number

當傳給后端的字段類型必須是數值的時候,可以在v-model所在控件上使用number指令(該指令會在用戶輸入時被同步到Model中,將其轉換為數值類型)。如果轉換結果為NaN,則對應的Model值還是用戶輸入的原始值。代碼如下:

    <input v-model="age" number>
主站蜘蛛池模板: 财经| 融水| 北流市| 贺兰县| 盐源县| 重庆市| 静安区| 房产| 磐石市| 开封市| 昌都县| 五河县| 马关县| 齐河县| 临沂市| 吐鲁番市| 中方县| 乐清市| 土默特右旗| 安庆市| 柳江县| 交口县| 临江市| 齐齐哈尔市| 漯河市| 竹溪县| 临武县| 罗山县| 濉溪县| 建始县| 兴城市| 栖霞市| 昌乐县| 盐亭县| 东兰县| 景宁| 长垣县| 赞皇县| 琼结县| 颍上县| 昌邑市|