vue.js指令v-model使用方法

vue.js的一大功能便是實(shí)現(xiàn)數(shù)據(jù)的雙向綁定,本文就表單處理時(shí)運(yùn)用v-model指令實(shí)現(xiàn)雙向綁定做一個(gè)介紹:

為平山等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及平山網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、平山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

v-model這個(gè)指令只能用在<input>, <select>,<textarea>這些表單元素上,所謂雙向綁定,指的就是我們?cè)趈s中的vue實(shí)例中的data與其渲染的dom元素上的內(nèi)容保持一致,兩者無(wú)論誰(shuí)被改變,另一方也會(huì)相應(yīng)的更新為相同的數(shù)據(jù)。這是通過(guò)設(shè)置屬性訪問(wèn)器實(shí)現(xiàn)的。例如:

var data = {
 name: "erik",
 getName: function() {
  return this.name;
 },
 setName: function(name) {
  this.name = name;
 }
};

上面的代碼中我們通過(guò)getName()和setName()方法作為訪問(wèn)器,我們可以進(jìn)一步嚴(yán)格限制(如借助Object.defineProperty方法)不直接訪問(wèn)name這個(gè)屬性,所有對(duì)data.name的讀寫(xiě)都必須通過(guò)data.getName()和data.setName()方法。此時(shí)我們改寫(xiě)訪問(wèn)器方法,添加對(duì)屬性值改變得到監(jiān)控,便可以實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。

那么在表單處理中我們具體如何使用v-model呢,先看看官方文檔給出的例子:

<form id="demo">
 <!-- text -->
 <p>
 <input type="text" v-model="msg">
 {{msg}}
 </p>
 <!-- checkbox -->
 <p>
 <input type="checkbox" v-model="checked">
 {{checked ? "yes" : "no"}}
 </p>
 <!-- radio buttons -->
 <p>
 <input type="radio" name="picked" value="one" v-model="picked">
 <input type="radio" name="picked" value="two" v-model="picked">
 {{picked}}
 </p>
 <!-- select -->
 <p>
 <select v-model="selected">
  <option>one</option>
  <option>two</option>
 </select>
 {{selected}}
 </p>
 <!-- multiple select -->
 <p>
 <select v-model="multiSelect" multiple>
  <option>one</option>
  <option>two</option>
  <option>three</option>
 </select>
 {{multiSelect}}
 </p>
 <p><pre>data: {{$data | json 2}}</pre></p>
</form>

對(duì)應(yīng)的js:

new Vue({
 el: '#demo',
 data: {
 msg  : 'hi!',
 checked : true,
 picked : 'one',
 selected : 'two',
 multiSelect: ['one', 'three']
 }
})

效果如下:

vue.js指令v-model使用方法

小伙伴們可以嘗試一下寫(xiě)出這個(gè)頁(yè)面,在瀏覽器中當(dāng)你調(diào)整上面表單元素的選中值時(shí),你會(huì)發(fā)現(xiàn)下面打印的vue實(shí)例內(nèi)容也會(huì)隨之改變,而如果你在代碼中改變vue實(shí)例data內(nèi)容時(shí)渲染出來(lái)的表單選中值也會(huì)隨之改變。

另外,v-model這個(gè)指令還有幾個(gè)可選的參數(shù):lazy,number,options,debounce

1.使用lazy參數(shù)是將雙向數(shù)據(jù)同步的時(shí)間節(jié)點(diǎn)從input觸發(fā)改為了change觸發(fā),調(diào)用方式如下:

<!-- synced after "change" instead of "input" -->
<input v-model="msg" lazy> 

2.使用number參數(shù)是通知v-model綁定的dom元素把用戶輸入值默認(rèn)當(dāng)成數(shù)字來(lái)處理,調(diào)用如下:

<input v-model="age" number>
 

3.使用options參數(shù)是用于渲染一個(gè)select項(xiàng)的列表,調(diào)用方式如下:

<select v-model="selected" options="myOptions"></select>

其中options的參數(shù)名指向一個(gè)數(shù)組,該數(shù)組可以包括字符串或?qū)ο?,?duì)象可以是{text:'', value:''}的形式,指定了<option>的value屬性與text內(nèi)容,例如:

[
 { text: 'A', value: 'a' },
 { text: 'B', value: 'b' }
]

將渲染出:

<select>
 <option value="a">A</option>
 <option value="b">B</option>
</select>

如果對(duì)象是{ label:'', options:[...] }的形式,則可以渲染出多個(gè)option組<optgroup>,如下例:

[
 { label: 'A', options: ['a', 'b']},
 { label: 'B', options: ['c', 'd']}
]

將渲染出:

<select>
 <optgroup label="A">
 <option value="a">a</option>
 <option value="b">b</option>
 </optgroup>
 <optgroup label="B">
 <option value="c">c</option>
 <option value="d">d</option>
 </optgroup>
</select>


4.使用debounce參數(shù)是指定一個(gè)延遲時(shí)間,延遲從按鍵觸發(fā)到數(shù)據(jù)更新同步之間的時(shí)間,當(dāng)我們的更新操作比較耗時(shí)時(shí)這個(gè)屬性十分有用,例如搜索引擎在我們鍵入字符時(shí)發(fā)送ajax請(qǐng)求完成自動(dòng)補(bǔ)全提示,調(diào)用如下:

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

分享題目:vue.js指令v-model使用方法
當(dāng)前網(wǎng)址:http://muchs.cn/article30/pjjjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、靜態(tài)網(wǎng)站網(wǎng)站內(nèi)鏈、動(dòng)態(tài)網(wǎng)站、軟件開(kāi)發(fā)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)