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完美拖拽,可返回拖动轨迹
Mar 29 Javascript
javascript验证邮件地址和MX记录的方法
Jun 16 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
Extjs 点击复选框在表格中增加相关信息行
Jul 12 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
Sep 05 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
Mar 03 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
Jun 26 Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 Javascript
Vite + React从零开始搭建一个开源组件库
Jun 25 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
PHP 开发工具
2006/12/06 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
python随机数分布random测试
2018/08/27 Python
基于python实现对文件进行切分行
2020/04/26 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
python绘制汉诺塔
2021/03/01 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
《桥》教学反思
2014/04/09 职场文书
公司晚会策划方案
2014/05/17 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
家装电话营销开场白
2015/05/29 职场文书
放牛班的春天观后感
2015/06/01 职场文书
消夏晚会主持词
2015/06/30 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
详解thinkphp的Auth类认证
2021/05/28 PHP
深入理解redis中multi与pipeline
2021/06/02 Redis
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL