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方法;對象