el-form中rules的原理簡介
一直以來我都沒有搞懂el-form的rules究竟是怎麼工作的,我只是按照文件畫瓢而已。這次有個需求把介面上的el-select替換成樹形的下拉框,只能自己封裝了,同時這裡用到了rules,沒辦法我只能讓自定義的樹形元件(我取名叫DropdownTree)支援rules了。可是我對這個一無所知!!!
把拉程式碼吧,還能怎麼辦呢?
經過艱苦卓絕的一個小時,總算搞懂了。我下面嘗試總結一下
當表單元素(比如el-input),在value變化或blur時,會觸發el.form.change和el.form.blur到ElFormItem,這是使用emitter.js中的dispatch實現的。ElFormItem就會呼叫自身的validate方法來做驗證。validate方法藉助了AsyncValidator,這個是一個第三方包,這裡就不討論了。
AsyncValidator的驗證需要我們傳入驗證規則,ElFormItem怎麼獲取驗證規則的呢?它會綜合ElForm上的rules和自己的rules,以及ElFormItem上的required欄位生成一個規則陣列,這裡要說一下ElForm上的ElFormItem上的rules是互斥的,後者的優先順序高。
接下來再提一下ElForm.validate的實現,它會呼叫所有設定了prop的ElFormItem的validate。
如果要實現自己的表單元素,並且支援rules的話,需要在自己的表單元件中emit出el.form.change和el.form.blur事件。
如果有幫助,請點贊哦:)
相關文章
- 簡單介紹v-for中動態校驗el-form表單項的實踐ORM
- metaq原理簡介
- HSF原理簡介
- Flutter原理簡介Flutter
- Rust中的macro_rulesRustMac
- Xposed原理簡介及其精簡化
- Varnish(一)簡介與原理
- ppium簡介及工作原理
- MySQL原理簡介—9.MySQL索引原理MySql索引
- WebSocket原理及技術簡介Web
- Thanos工作原理及元件簡介元件
- 大資料框架原理簡介大資料框架
- 條形碼生成原理介紹及簡介
- Fedora 中的 Toolbox 簡介
- 精準化測試原理簡介
- iptables基礎原理和使用簡介
- Go之NSQ簡介,原理和使用Go
- 從提升樹到 XGBoost, 原理簡介
- ObjC中Category的原理簡析OBJGo
- MySQL原理簡介—1.SQL的執行流程MySql
- js中Array的方法簡介JS
- SAP HANA 中的 SLT 簡介
- java中的編碼簡介Java
- Python中的psutil使用簡介Python
- Abaqus中的剛體簡介
- Mulesoft中的Raml 1.0簡介
- 【OpenCV-Python】專案中遇到的關鍵函式原理及使用簡介OpenCVPython函式
- 關於Eeasy rules在工作中的感想
- MySQL原理簡介—11.最佳化案例介紹MySql
- j-easy/easy-rules: Java簡單的規則引擎Java
- 01 . Vue簡介,原理,環境安裝Vue
- 學習筆記-React的簡單介紹&工作原理筆記React
- 0901-生成對抗網路GAN的原理簡介
- linux中斷 簡介Linux
- iOS 12 中的 Siri Shortcuts 簡介iOS
- 簡單介紹Rust中的workspaceRust
- JAVA集合框架中的常用集合及其特點、適用場景、實現原理簡介Java框架
- 01 . ELK Stack簡介原理及部署應用