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
- Flutter原理簡介Flutter
- metaq原理簡介
- HSF原理簡介
- Rust中的macro_rulesRustMac
- Turbo碼原理簡介
- Spring原理簡介Spring
- 瀏覽器的渲染原理簡介瀏覽器
- 喇叭的基本發音原理簡介
- Xposed原理簡介及其精簡化
- Varnish(一)簡介與原理
- ppium簡介及工作原理
- MapReduce工作原理流程簡介
- HttpSession工作原理簡介HTTPSession
- GoldenGate的簡介與複製原理Go
- WebSocket原理及技術簡介Web
- Thanos工作原理及元件簡介元件
- 大資料框架原理簡介大資料框架
- android IPC及原理簡介Android
- 視訊編碼原理簡介
- ObjC中Category的原理簡析OBJGo
- SAP HANA 中的 SLT 簡介
- java中的編碼簡介Java
- Fedora 中的 Toolbox 簡介
- js中Array的方法簡介JS
- Abaqus中的剛體簡介
- Mulesoft中的Raml 1.0簡介
- .Text中的TrackBack功能簡介
- Python中setuptools的簡介Python
- 關於Eeasy rules在工作中的感想
- Go之NSQ簡介,原理和使用Go
- iptables基礎原理和使用簡介
- FastDFS分散式儲存原理簡介AST分散式
- 精準化測試原理簡介
- ios中XMPPFramework 簡介iOSFramework
- 【OpenCV-Python】專案中遇到的關鍵函式原理及使用簡介OpenCVPython函式
- j-easy/easy-rules: Java簡單的規則引擎Java
- iOS 12 中的 Siri Shortcuts 簡介iOS