vue.js的一大功能便是實現(xiàn)數(shù)據(jù)的雙向綁定,本文就表單處理時運用v-model指令實現(xiàn)雙向綁定做一個介紹:
為平山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及平山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、平山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
v-model這個指令只能用在,
var data = { name: "erik", getName: function() { return this.name; }, setName: function(name) { this.name = name; } };
上面的代碼中我們通過getName()和setName()方法作為訪問器,我們可以進(jìn)一步嚴(yán)格限制(如借助Object.defineProperty方法)不直接訪問name這個屬性,所有對data.name的讀寫都必須通過data.getName()和data.setName()方法。此時我們改寫訪問器方法,添加對屬性值改變得到監(jiān)控,便可以實現(xiàn)數(shù)據(jù)的雙向綁定。
那么在表單處理中我們具體如何使用v-model呢,先看看官方文檔給出的例子:
對應(yīng)的js:
new Vue({ el: '#demo', data: { msg : 'hi!', checked : true, picked : 'one', selected : 'two', multiSelect: ['one', 'three'] } })
效果如下:
小伙伴們可以嘗試一下寫出這個頁面,在瀏覽器中當(dāng)你調(diào)整上面表單元素的選中值時,你會發(fā)現(xiàn)下面打印的vue實例內(nèi)容也會隨之改變,而如果你在代碼中改變vue實例data內(nèi)容時渲染出來的表單選中值也會隨之改變。
另外,v-model這個指令還有幾個可選的參數(shù):lazy,number,options,debounce
1.使用lazy參數(shù)是將雙向數(shù)據(jù)同步的時間節(jié)點從input觸發(fā)改為了change觸發(fā),調(diào)用方式如下:
2.使用number參數(shù)是通知v-model綁定的dom元素把用戶輸入值默認(rèn)當(dāng)成數(shù)字來處理,調(diào)用如下:
3.使用options參數(shù)是用于渲染一個select項的列表,調(diào)用方式如下:
其中options的參數(shù)名指向一個數(shù)組,該數(shù)組可以包括字符串或?qū)ο?,對象可以是{text:'', value:''}的形式,指定了
[ { text: 'A', value: 'a' }, { text: 'B', value: 'b' } ]
將渲染出:
如果對象是{ label:'', options:[...] }的形式,則可以渲染出多個option組
[ { label: 'A', options: ['a', 'b']}, { label: 'B', options: ['c', 'd']} ]
將渲染出:
4.使用debounce參數(shù)是指定一個延遲時間,延遲從按鍵觸發(fā)到數(shù)據(jù)更新同步之間的時間,當(dāng)我們的更新操作比較耗時時這個屬性十分有用,例如搜索引擎在我們鍵入字符時發(fā)送ajax請求完成自動補全提示,調(diào)用如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。