Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验


Posted in Javascript onApril 22, 2019

Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验

vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息。它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开箱即用,还支持自定义正则表达式。而且支持 40 多种语言,对本地化、多语言支持非常友好。

国内饿了么团队开源项目 Element UI 就用到了 vee-validate 。

vee-validate 官网:https://baianat.github.io/vee-validate/

1. 安装

安装 vee-validate 到项目中

npm install vee-validate --save

2. 创建 vee-validate 插件

a. 创建插件

在 Nuxt.js 项目 plugins 目录下创建 veevalidate.js 。

b. 引入、配置 vee-validate

import Vue from 'vue'
import zhCN from 'vee-validate/dist/locale/zh_CN' // 引入本地化语言
import VeeValidate, { Validator } from 'vee-validate' // 引入 vee-validate
// 覆盖默认错误信息提示
zhCN.messages.email = () => '请输入正确的邮箱地址'
Vue.use(VeeValidate)
// 本地化
Validator.localize('zh_CN', zhCN)

3. 引入 vee-validate 到项目中

在 nuxt.config.js 中引入刚才配置好的插件 veevalidate.js

/*
** Plugins to load before mounting the App
*/
plugins: [
  '@/plugins/veevalidate'
],

4. 表单页实现自定义错误提示、自定义检验规则

HTML 表单

<form action="">
 <van-cell-group>
  <van-field placeholder="请输入有效邮箱" type="email" v-model="email" name="email"
   v-validate="'required|email'" :error-message="errors.first('email')" />
  <van-field placeholder="请输入密码" v-model="password" type="password" name="password"
   v-validate="{ min: 3, max: 16, regex: regexps.password }" :error-message="errors.first('password')">
  </van-field>
 </van-cell-group>
</form>

JS

a. 自定义错误提示信息

// 自定义错误信息提示
const validateDict = {
 custom: {
  email: {
   required: '请输入电子邮箱', // 覆盖 email 字段的 required 规则默认信息提示
   email: '请输入有效的电子邮箱地址' // 覆盖 email 字段的 email 规则默认信息提示
  },
  password: {
   min: '密码长度在7-26个字符', // 覆盖 password 字段的 min 规则默认信息提示
   max: '密码长度在7-26个字符', // 覆盖 password 字段的 max 规则默认信息提示
   regex: '需包含大写字母、小写字母、数字、特殊字符中任意三项' // 覆盖 email 字段的 regex 规则默认信息提示
  }
 }
}

b. Vue 中覆盖默认配置,使用自定义提示信息

data () {
 regexps: {
  password: new RegExp('') // 密码检验自定义正则表达式
 },
},
created() {
 this.$validator.localize('zh_CN', validateDict)
},

5. 效果截图

Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验

总结

以上所述是小编给大家介绍的Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jQuery实现的Div窗口震动特效
Jun 09 Javascript
使用jQuery在对象中缓存选择器的简单方法
Jun 30 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
JS中传递参数的几种不同方法比较
Jan 20 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
详解Node.js实现301、302重定向服务
Apr 07 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
vue 项目build错误异常的解决方法
Apr 22 #Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 #Javascript
今天,小程序正式支持 SVG
Apr 20 #Javascript
详解Vue中组件的缓存
Apr 20 #Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
Apr 20 #Javascript
优雅地使用loading(推荐)
Apr 20 #Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 #Javascript
You might like
php+dbfile开发小型留言本
2006/10/09 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
自写的一个jQuery圆角插件
2010/10/26 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
为什么说python更适合树莓派编程
2020/07/20 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
母校寄语大全
2014/04/10 职场文书
工地安全生产标语
2014/06/06 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
2015国庆节宣传语
2015/07/14 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Python操作CSV格式文件的方法大全
2021/07/15 Python
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
Android存储中最基本的文件存储方式
2022/04/30 Java/Android