element的el-form设计分析

element的el-form设计分析_第1张图片

表单组件的核心需求

收集、校验、提交数据

分层设计

el-form,el-form-item,el-input等

职责分析

1.el-input:数据绑定到model的属性,触发校验
通过v-model双向绑定数据;通过dispatch让el-form-item来$emit事件,达到触发校验的目的。


this.dispatch 来自于mixins中的emitter,作用是不断查找和判断父组件是否是ElFormItem,找到之后就在这个父组件上$emit("el.form.blur", ...),然后ElFormItem通过监听el.form.blur事件来校验。

2.el-form-item:根据校验规则做验证,控制显示错误信息
通过mounted内监听事件(el.form.blur)进行真正的校验;同时也通过dispatch把自己保存在el-form里面,方便el-form对整个表单validate。