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

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>
主站蜘蛛池模板: 江陵县| 高碑店市| 讷河市| 怀远县| 乐平市| 南京市| 西乌珠穆沁旗| 邹平县| 胶州市| 太仆寺旗| 陈巴尔虎旗| 陇西县| 金溪县| 长治县| 岑巩县| 且末县| 仙桃市| 二连浩特市| 日照市| 称多县| 三明市| 崇阳县| 西充县| 积石山| 玉环县| 卢氏县| 中山市| 青龙| 交城县| 玉林市| 宣城市| 连平县| 盈江县| 松桃| 喀喇沁旗| 安吉县| 永康市| 富锦市| 宝坻区| 宽城| 临澧县|