在Vue表单中使用Yup验证
安装和配置
安装
这里使用 yarn
安装
1 | yarn add yup |

配置
按需引入
1
import { object, string } from "yup";
全部引入
1
import * as yup from "yup";
How to 使用(以登陆验证为例)
创建验证架构
定义对象架构,并使用架构调用附加到该方法的方法
1 | const loginSchema = yup.object().shape({}) |
或者在方法中传递架构
1 | const loginSchema = yup.object({}) |
由于需要对字符串验证,所以需要使用方法 string()
定义字符串架构
对于邮件和密码的 check:
1 | const loginSchema = yup.object().shape({ |
我们还可以添加其他更多的验证方法,可以在 yup 文档中查看
添加 check
定义验证方法
首先我们要定义验证方法,验证方法会根据验证架构验证单个字段
我们可以在回调中获取验证错误信息
1 | const inputCheck = (field: string) => { |
如果用户点击 button
提交表单时触发该方法, 默认情况下如果在发现错误后会立刻进入 catch
中,不会验证其他任何的字段,要避免这个需要传递 abortEarly: false
1 | const inputCheck = (field: string, {abortEarly: false}) => { |
表单中添加 check 方法
在输入框矢焦时触发
1 | <input |
使用 test()
方法自定义 check 规则
虽然可以使用 when() 或 ref 进行复杂的验证,但是由于灵活性不强,所以可以使用 test() 方法进行复杂验证
这里以 numA === numB + numC 为例
首先要创建验证架构
numA、numB、numC 需要是数字类型 number()
,并且不为空 required()
之后在 test()
自定义 check 规则,并返回 check 结果( true
或 false
)
1 | const numSchema = yup.object().shape({ |
然后定义验证方法
1 | const numCheck = (field: string) => { |
最后在表单或 button 绑定验证方法即可🙃
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Flappy Fish!