Vee Validate 基本使用
一、前言
以前在项目中主要使用的是 Element-ui ,这里用到的数据验证主要是在 form 中绑定 rules,进行一些数据的验证。
最近在新的项目中接触到 Vee Validate 这个验证数据的。
二、导入基本使用
1、添加包
# install with npm npm install vee-validate --save # install with yarn yarn add vee-validate
2、在项目中引入
(这里是用 Vue)
// VeeValidate import VeeValidate from 'vee-validate' Vue.use(VeeValidate)
这样简单配置后就可以使用了。
3、简单验证
<vs-row class="py-4" vs-w="12"> <vs-col vs-type="flex" vs-justify="center" vs-align="center" vs-w="12"> <vs-input v-validate="'required|email'" v-model="email" style="width:95%" type="email" label-placeholder="Email" name="email" /> </vs-col> </vs-row>
上面代码中使用了 v-validate 指令绑定了对应的验证规则(required 和 email 是自带的验证规则)
下面是在提交的时候看是否验证通过
handleSignUpClick() { const _this = this this.$validator.validateAll().then(result => { if (result) {
// 验证通过后具体操作
} }) }
基本的用法这些就可以了,下面介绍些其他用法。
三、中文配置
这个库默认的错误提示都是英文的,下面是进行中文的配置。
直接全局进行配置
import VeeValidate, {Validator} from 'vee-validate'; import zh_CN from 'vee-validate/dist/locale/zh_CN'; Vue.use(VeeValidate, { dictionary: { zh_CN: zh_CN } }); Validator.localize('zh_CN');
这样在提示错误的时候就是中文了。
四、自定义验证规则和错误提示
在实际使用中,会遇到一些定制性的验证、提示等功能。
Vee Validate 支持自定义定义这些。
// Vue 组件中使用 <script> const validate = { custom: { code: { required: () => '验证码不能为空', // 写法1 length: '验证码必须为6位数字'// 写法2 } } } export default { mounted() { // 加载自定义错误提示 this.$validator.localize('zh_CN', validate) // 添加自定义验证规则 this.$validator.extend('mobile', { getMessage: field => '请输入正确手机号', validate: value => { return /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value) } }) } }
从上面看出,加载自定义错误提示是通过 locallize 函数加载的,添加自定义规则是通过 extent。
上面介绍的这些在日常项目中基本都够用了。
只是在添加自定义的验证规则时,主要还是靠正则表达式才能达到效果。
下面是项目中用到的密码验证规则(拿来参考)
// 验证密码规则 this.$validator.extend('passwordrule', { getMessage: field => '密码需要是一个至少包含一个大写字母、小写字母、数字的字符串', validate: value => { return /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/.test(value) } })
最后
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端