学习使用 vee-validate

1.安装

npm i vee-validate@4.0.3

2.导入,注册为局部组件

import { Form, Field } from 'vee-validate'

components:{Form, Field}

3.基本结构

Form 就是表单, Field就是表单项

<Form>
      <Field v-model="formData.mobile" name="mobile" type="text" placeholder="请输入手机号" />
      <Field v-model="formData.password" name="password" type="password" placeholder="请输入密码" />
</Form>

4.定义验证规则

整体用一个对象包起来,每条规则就是一个函数。具体格式如下:

  • 参数1:是要验证的值,参数2:是验证对象{field, form}

  • 返回值:true表示通过验证,返回字符串表示校验错误。

const schema = {
  mobile (value) {
    if (!value) return '请输入手机号'
    if (!/^1[3-9]\d{9}$/.test(value)) return '手机号格式错误'
    return true
  },
  password (value) {
    if (!value) return '请输入密码'
    if (!/\d{6}$/.test(value)) return '密码格式错误'
    return true
  },
  isAgree (value) {
    return value || '不答应可不行'
  }
}

5.使用规则 

ref: 引用;后边手动兜底校验要使用
validation-schema: 用来指定校验规则(这里的规则) 
v-slot: 作用域插槽,如果校验失败,errors中会保存校验失败的结果


<Form ref="target" :validation-schema="schema" v-slot="{errors}">
  		<!-- 省略其他 ... -->
       <!-- 
				Field: v-model:双向绑定数据项
							 name:指定要校验的字段
							:class="{error:errors.mobile}" 如果校验失败,就补充error类
				动态绑定class用来约定错误发生时的样子 -->
      <Field 
             v-model="formData.mobile" 
             type="text" 
             name="mobile"
             placeholder="请输入手机号" 
             :class="{error:errors.mobile}"
       />
  		<!-- 约定显示校验错误结果 -->
       <div class="error" v-if="errors.mobile">{{errors.mobile}}</div>
  
       <!-- 省略其他 ... -->
</Form>

6.手动兜底校验

	const target = ref(null) // 定义引用属性 <Form ref="target"
	const checkForm = () => {
      // Form 组件提供了一个 validate 函数作为整体表单校验,返回的是一个promise
      target.value.validate().then((res) => {
        console.log('表单校验结果', res)
      })
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值