這篇文章給大家分享的是有關VUE如何實現(xiàn)表單元素雙向綁定的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的岳陽樓網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區(qū)別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)復雜的單頁應用。
checkbox最基本用法:
new Vue({ el:".......", data:{ inputdata:false //邏輯類型 } ready:function(){ console.log(this.inputdata)//true } })
規(guī)則1:如果v-model綁定的變量類型為boolean,若input被選中,this.inputdata為true,否則this.inputdata為false。
inputdata變量初始設置為false,但是在頁面進行編譯時,因為第一個input為選中狀態(tài),所以更新inputdata為true,那么渲染結束之后三個input均為選中狀態(tài),且三個input狀態(tài)同步。
new Vue({ el:".......", data:{ inputdata:[]//數(shù)組類型 } ready:function(){ console.log(this.inputdata)//[a,c] } })
規(guī)則2:如果v-model綁定的變量類型為數(shù)組,那么綁定該變量的元素若被選中,把該元素的value值添加進數(shù)組,若不被選中,那么把該元素的value從數(shù)組中去除。
所以在v-model綁定的變量類型是數(shù)組的情況下,務必設置綁定該變量的每個元素的value值,且value值不要相等。見上例。
radio基本用法
new Vue({ el:".......", data:{ inputdata:"a" } ready:function(){ console.log(this.inputdata)// c } })
規(guī)則: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基本用法
Selected: {{ selected | json }} new Vue({ el:"....", data:{ selelcted:"A" } })
規(guī)則:v-model綁定的變量值如果等于option元素其中一個value值,那么該元素會被選中。同時如果選中某個option元素,那么該元素的value值就會被賦給該變量。
如上,初始this.selected為"A",在編譯到第二個option時,因為屬性為selected表示選中,該元素text值為"B"(如果option有value值,會優(yōu)先value值),所以this.selected值為"B"。編譯結束后,this.slected值為"B",頁面最終渲染效果為第二個被選中。如果是可多選select下拉框,規(guī)則基本同checkbox的規(guī)則2
屬性基本用法
lazy
在默認情況下,v-model 在input 事件中同步輸入框值與數(shù)據(jù),可以添加一個特性lazy,input值發(fā)生改變時,不會同步到綁定的變量
//input值發(fā)生改變,msg不變
number
如果想自動將用戶的輸入轉為 Number 類型(如果原值的轉換結果為 NaN 則返回原值),可以添加一個特性 number:
//默認輸入框內(nèi)的值為字符串,添加number,可以將輸入值轉換為數(shù)字在同步到age
debounce
設置一個最小的延時,在每次敲擊之后延時同步輸入框的值與數(shù)據(jù)。如果每次更新都要進行高耗操作(例如在輸入提示中 Ajax 請求),它較為有用.
//輸入內(nèi)容0.5秒后同步到msg vm.$watch({ 'msg':function(val,oldval){ } })
注意 debounce 參數(shù)不會延遲 input 事件:它延遲“寫入”底層數(shù)據(jù)(所以不適合ajax請求事件)。因此在使用debounce 時應當用 vm.$watch() 響應數(shù)據(jù)的變化。
若想延遲 DOM 事件,應當使用debounce過濾器。
debounce過濾器
//只要操作鍵盤間隔小于0.5秒,就不會發(fā)生onKeyup事件。
包裝處理器,讓它延遲執(zhí)行 x ms, 默認延遲 300ms。包裝后的處理器在調用之后至少將延遲 x ms, 如果在延遲結束前再次調用,延遲時長重置為 x ms。
用此過濾器非常適合做ajax請求
感謝各位的閱讀!關于“VUE如何實現(xiàn)表單元素雙向綁定”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。