详解vee-validate的使用个人小结
学习vee-validate,首先可以去阅读官方文档,更为详细可以阅读官网中的规则。英文文档可能会有不理解的地方,推荐大家看这篇博客
下面来简单总结一下我的使用:
一、安装
npminstallvee-validate@next--save
后面加@next是为了安装vue2.0的版本
二、引入
我使用的是vue-cli脚手架工具,需要在main.js中
importVeeValidatefrom'vee-validate' Vue.use(VeeValidate);
三、简单的使用
这个时候其实已经可以使用了,先上demo
邮箱: {{errors.first('myEmail')}}
解释一下:v-validate后面的required和email是官方已经规定好的几种默认错误类型中的两个,这个可以阅读官方文档。
span中用到了errors的几个方法,这里的参数都是定义了验证规则的表单的name。列举几个errors的方法:
1、first(‘field')
field中(也就是刚刚说过的name表单)中的第一个错误
2、collect(‘field')
field中所有的错误
3、has(‘field')
field中是否有错误
4、all()
当前表单中的所有错误
5、any()
当前表单中是否有错误
6、count()
当前表单中的错误数量
7、clear()
清除当前表单中的所有错误
四、使用中文错误提示
没有配置过的错误提示默认使用英文显示的,如果想要用中文显示需要我们手动配置一下
首先还是在main.js中引入
importzh_CNfrom'vee-validate/dist/locale/zh_CN' import{Validator}from'vee-validate';
紧接着再加一句
Validator.addLocale(zh_CN);
最后需要把第一步的Vue.use(VeeValidate)改为
Vue.use(VeeValidate,{ locale:'zh_CN', });
现在错误提示已经是中文了
五、配置组件
上一点中的配置中文其实已经是对组件的配置了,再说一说其他的配置。
//配置 constconfig={ errorBagName:'errors',//changeifpropertyconflicts. fieldsBagName:'fields', delay:0, locale:'zh_CN', strict:true, enableAutoClasses:false, classNames:{ touched:'touched',//thecontrolhasbeenblurred untouched:'untouched',//thecontrolhasn'tbeenblurred valid:'valid',//modelisvalid invalid:'invalid',//modelisinvalid pristine:'pristine',//controlhasnotbeeninteractedwith dirty:'dirty'//controlhasbeeninteractedwith }, events:'blur', inject:true }; Vue.use(VeeValidate,config);
delay是指对错误提示的延迟时间;locale就是上一点中对中文的配置,只是这里统一写到了config中;strict=true代表没有设置规则的表单不进行校验,events默认是input|blur,就是在用户输入和表单失去焦点时都进行校验,这里我改成了blur,即只有失去焦点时才开始验证。
五、修改默认的错误提示信息
//修改默认错误提示 constdictionary={ zh_CN:{ messages:{ email:()=>'邮箱格式不正确哦' } } }; Validator.updateDictionary(dictionary);
demo中修改了email的错误提示信息,因为使用的中文(前面引入的),所以是zh_CN。最后用updateDictionary方法加入到Validator中。
六、自定义规则
Validator.extend('qq',{ messages:{ zh_CN:field=>'qq号码输入不正确' }, validate:value=>{ return/^[1-9][0-9]{4,14}$/.test(value); } });
extend的第一个参数就是自定义的规则的名字,可以像使用默认规则一样使用它,messages中是错误提示信息,validate是验证规则,返回一个布尔值或promise.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。