中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VUE如何實現表單元素雙向綁定

發布時間:2021-04-23 14:28:43 來源:億速云 閱讀:221 作者:小新 欄目:web開發

這篇文章給大家分享的是有關VUE如何實現表單元素雙向綁定的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

vue是什么

Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態系統支持的庫開發復雜的單頁應用。

checkbox最基本用法:

<input type="checkbox" v-model="inputdata" checked/>
<input type="checkbox" v-model="inputdata"/>
<input type="checkbox" v-model="inputdata"/>
new Vue({
  el:".......",
  data:{
    inputdata:false //邏輯類型
  }
  ready:function(){
    console.log(this.inputdata)//true
  }
})

規則1:如果v-model綁定的變量類型為boolean,若input被選中,this.inputdata為true,否則this.inputdata為false。

inputdata變量初始設置為false,但是在頁面進行編譯時,因為第一個input為選中狀態,所以更新inputdata為true,那么渲染結束之后三個input均為選中狀態,且三個input狀態同步。

<input type="checkbox" value="a" v-model="inputdata" checked/>
<input type="checkbox" value="b" v-model="inputdata"/>
<input type="checkbox" value="c" v-model=""inputdata" checked/>
new Vue({ 
  el:".......", 
  data:{ 
    inputdata:[]//數組類型
  }   
  ready:function(){     
    console.log(this.inputdata)//[a,c]
  } 
})

規則2:如果v-model綁定的變量類型為數組,那么綁定該變量的元素若被選中,把該元素的value值添加進數組,若不被選中,那么把該元素的value從數組中去除。

所以在v-model綁定的變量類型是數組的情況下,務必設置綁定該變量的每個元素的value值,且value值不要相等。見上例。

 radio基本用法

<input type="radio" value="a" v-model="inputdata" />
<input type="radio" value="b" v-model="inputdata" checked/>
<input type="radio" value="c" v-model="inputdata" checked/>

new Vue({
  el:".......",
  data:{
    inputdata:"a"
  }
  ready:function(){
    console.log(this.inputdata)// c
  }
})

規則:v-model綁定的變量值如果等于input元素其中一個value值,那么該表單元素會被選中,如果不等于任何input的value值,所有相關元素不選中。同時如果選中某個input元素,那么該元素的value值就會被賦給該變量,頁面重新渲染。

如上,初始this.inputdata為"a",在編譯到第二個input時,因為屬性為checked表示選中,該元素value為"b",所以this.inputdata值為"b",然后編譯到第三個input時,同樣存在checked,所以this.inputdata為"c"。編譯結束后,this.inputdata值為"c",頁面最終渲染效果為第三個被選中,前兩個未被選中。

select基本用法

<select v-model="selected">
 <option>A</option>
 <option selected>B</option>
 <option>C</option>
</select>
<br>
<span>Selected: {{ selected | json }}</span>

new Vue({
  el:"....",
  data:{
    selelcted:"A"
  }
})

規則:v-model綁定的變量值如果等于option元素其中一個value值,那么該元素會被選中。同時如果選中某個option元素,那么該元素的value值就會被賦給該變量。

如上,初始this.selected為"A",在編譯到第二個option時,因為屬性為selected表示選中,該元素text值為"B"(如果option有value值,會優先value值),所以this.selected值為"B"。編譯結束后,this.slected值為"B",頁面最終渲染效果為第二個被選中。如果是可多選select下拉框,規則基本同checkbox的規則2

屬性基本用法

lazy

在默認情況下,v-model 在input 事件中同步輸入框值與數據,可以添加一個特性lazy,input值發生改變時,不會同步到綁定的變量

<input type="text" v-model="msg" lazy>//input值發生改變,msg不變

number

如果想自動將用戶的輸入轉為 Number 類型(如果原值的轉換結果為 NaN 則返回原值),可以添加一個特性 number:

<input v-model="age" number>//默認輸入框內的值為字符串,添加number,可以將輸入值轉換為數字在同步到age

debounce

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

<input v-model="msg" debounce="500">//輸入內容0.5秒后同步到msg

vm.$watch({
  'msg':function(val,oldval){
      
  }
})

注意 debounce 參數不會延遲 input 事件:它延遲“寫入”底層數據(所以不適合ajax請求事件)。因此在使用debounce 時應當用 vm.$watch() 響應數據的變化。

若想延遲 DOM 事件,應當使用debounce過濾器。

debounce過濾器

<input @keyup="onKeyup | debounce 500">//只要操作鍵盤間隔小于0.5秒,就不會發生onKeyup事件。

包裝處理器,讓它延遲執行 x ms, 默認延遲 300ms。包裝后的處理器在調用之后至少將延遲 x ms, 如果在延遲結束前再次調用,延遲時長重置為 x ms。

用此過濾器非常適合做ajax請求

感謝各位的閱讀!關于“VUE如何實現表單元素雙向綁定”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

府谷县| 米易县| 泉州市| 兴和县| 长宁县| 南木林县| 温泉县| 东丰县| 宁阳县| 无棣县| 扎鲁特旗| 明水县| 丰原市| 柘城县| 逊克县| 梨树县| 雷山县| 遂川县| 哈密市| 邵阳市| 敦煌市| 石狮市| 江北区| 化隆| 新源县| 左权县| 开鲁县| 陆河县| 贡觉县| 和硕县| 互助| 景德镇市| 济宁市| 大竹县| 郧西县| 克什克腾旗| 新乡市| 昌图县| 历史| 汉寿县| 乌兰浩特市|