1.初始化生命周期created里绑定el.form.addField事件,将须要校验的formItem放入data中的fileds中,在formItem的mounted里调用;数组
2.初始化生命周期created里绑定el.form.removeField事件,当某项formItem不存在时,删除数组fields中对应的项,在formItem的beforeDestroy中调用;promise
3.resetFields(),对整个表单进行重置,将全部字段值重置为初始值并移除校验结果;以下图所示,若是form没有绑定数据,则返回错误提示,不然调用对应项formItem的resetFields()方法;函数
4.clearValidate(); 移除表单项的校验结果,传入参数,移除对应参数的校验结果,参数为formItem对应的prop属性,不传参数移除所有的对应校验结果;先经过判断获得须要移除的表单校验结果,再调用对应项的formItem的clearValidate()方法orm
5.validate(),对整个表单进行校验;传入回调函数,校验完成执行回调函数,传入其余参数或者不传入,则返回promise; j进入到validate()函数中,以下图所示:首先是若是form没有绑定数据,则返回错误提示,接下来若是传入的参数不是函数,则调用window.Promise,将callback变成一个函数,若是没有须要验证的formItem,返回callback(true);若是有须要验证的formItem,则循环调用对应formItem的validate()方法,将未经过校验的项放入invalidFields对象中,当全部项的验证都完成后,调用callback函数,将验证结果和验证未经过的项放入回调函数中。若是传入的参数不是函数,则将返回promise函数,参数为验证结果,不包含未经过验证的项。cdn
6.validateField(),对部分表单字段进行校验的方法。以下图所示,从所有校验项中筛选出传入的须要校验的项,若是没有,则返回错误提示;若是校验项存在,则遍历调用对应项的validate方法,每个校验项都会调用对应的cb方法;对象