ElementUI中<el-form>標(biāo)簽中ref、:model、:rules的作用淺析
首先看一下代碼
<el-form
ref="loginForm"
:model="loginInfo"
:rules="loginRules"
class="login-form"
auto-complete="on"
label-position="left"
>
ref 屬性涉及Dom 元素的獲取(el-form表單對(duì)象)。
javaSrcipt 獲取Dom 元素是通過(guò):document.querySelector(".input")獲取dom元素節(jié)點(diǎn) 。
Vue 為簡(jiǎn)化DOM獲取方法提出了ref 屬性和$refs 對(duì)象。一般的操作流程是:ref 綁定控件,$refs 獲取控件。
Element官方文檔中寫到:
model是表單數(shù)據(jù)對(duì)象,rules是表單驗(yàn)證規(guī)則。
Form 組件提供了表單驗(yàn)證的功能,只需要通過(guò) rules 屬性傳入約定的驗(yàn)證規(guī)則,并將 Form-Item 的 prop 屬性設(shè)置為需校驗(yàn)的字段名即可。
里面的邏輯大概是,在el-form-item上寫一個(gè)prop,這個(gè)prop左手對(duì)應(yīng)著數(shù)據(jù)源(即用model.prop找到對(duì)應(yīng)的數(shù)據(jù)源),右手對(duì)應(yīng)著驗(yàn)證規(guī)則(即用rules.prop找到對(duì)應(yīng)的規(guī)則),然后進(jìn)行驗(yàn)證。
補(bǔ)充:注意點(diǎn)
- :model的數(shù)據(jù)屬性和:rules的屬性相對(duì)應(yīng)
- 一個(gè)el-form-item中有多個(gè)輸入框,每個(gè)輸入框都需要單獨(dú)嵌套在el-form-item中,此操作可以單獨(dú)校驗(yàn)每個(gè)輸入框
- 日期類型的數(shù)據(jù),校驗(yàn)要指定type:'date'
- 選擇框的value為數(shù)值,校驗(yàn)需要指定type:'number'
- 單選按鈕和多選按鈕為數(shù)值,校驗(yàn)需要指定type:'number'
- 輸入框想要轉(zhuǎn)換成為數(shù)值類型,可以使用v-model.number,校驗(yàn)需要指定type:number'
- 輸入框想要校驗(yàn)郵箱格式,只需要指定type:'email'
- 嵌套在el-input中的el-select不能實(shí)現(xiàn)聯(lián)動(dòng)校驗(yàn),若想實(shí)現(xiàn)聯(lián)動(dòng)校驗(yàn),需要@change自定義調(diào)用校驗(yàn)
- rules的簡(jiǎn)單校驗(yàn)有三個(gè)屬性:required,message,trigger,分別為:是否必填,校驗(yàn)失敗提示信息,校驗(yàn)時(shí)機(jī)
- 如果要自定義校驗(yàn)規(guī)則,需要屬性validator:(rule,value,callback)=>{手動(dòng)校驗(yàn)代碼塊},rule參數(shù)數(shù)據(jù)很豐富,為一個(gè)Object類型的數(shù)據(jù),有field,type,validator,required等屬性,value為:model屬性的值,callback(str)為要返回的信息
- 單選框,多選框,日期框,選擇框的校驗(yàn)時(shí)機(jī)都應(yīng)該指定為change,符合業(yè)務(wù)場(chǎng)景
- 動(dòng)態(tài)添加或刪除form表單的組件,需要?jiǎng)討B(tài)配置好label,prop,rule的數(shù)據(jù),刪除按鈕需要注意代碼let index = array.indexOf(item)和array.splice(index,1)
- 重置按鈕:this.$refs['refName'].resetFields();,清空了校驗(yàn),表單數(shù)據(jù)也恢復(fù)初始值
- 校驗(yàn)單個(gè)組件:this.$refs['refName'].validateField('propName');進(jìn)行了單個(gè)校驗(yàn)
- 校驗(yàn)全部:this.$refs['refName'].validate(valid=>{});表單整體校驗(yàn),一般提交按鈕需要觸發(fā)全部校驗(yàn)
總結(jié)
到此這篇關(guān)于ElementUI中<el-form>標(biāo)簽中ref、:model、:rules的作用淺析的文章就介紹到這了,更多相關(guān)el-form標(biāo)簽中ref、:model、:rules作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue+Mockjs模擬curd接口請(qǐng)求的示例詳解
這篇文章主要介紹了Vue+Mockjs模擬curd接口請(qǐng)求的示例詳解,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
vue項(xiàng)目配置國(guó)際化$t('')的介紹和用法示例
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目配置國(guó)際化?$t('')的介紹和用法的相關(guān)資料,多語(yǔ)言和國(guó)際化現(xiàn)在已經(jīng)成為一個(gè)網(wǎng)站或應(yīng)用的必要功能之一,Vue作為一款流行的前端框架,在這方面也有著靈活的解決方案,需要的朋友可以參考下2023-09-09
利用Vue3+Element?Plus封裝公共表格組件(帶源碼)
最近公司項(xiàng)目中頻繁會(huì)使用到table表格,而且前端技術(shù)這一塊也用到了vue3來(lái)開(kāi)發(fā),所以基于element plus table做了一個(gè)二次封裝的組件,這篇文章主要給大家介紹了關(guān)于利用Vue3+Element?Plus封裝公共表格組件的相關(guān)資料,需要的朋友可以參考下2023-11-11
Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)
這篇文章主要介紹了Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
vue 點(diǎn)擊其他區(qū)域關(guān)閉自定義div操作
這篇文章主要介紹了vue 點(diǎn)擊其他區(qū)域關(guān)閉自定義div操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
自定義input組件如何實(shí)現(xiàn)拖拽文件上傳
這篇文章主要介紹了自定義input組件如何實(shí)現(xiàn)拖拽文件上傳問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
?面試問(wèn)題Vue雙向數(shù)據(jù)綁定原理
這篇文章主要介紹了?面試問(wèn)題Vue雙向數(shù)據(jù)綁定原理,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09

