vue | async-validator 表单验证库 第三方库安装与使用

省流总结:async-validator,

安装 npm install async-validator --save

使用:import Schema from 'async-validator';

const validator = new Schema ({ modelName: 规则 });

validator**.validate**({ modelName: 要验证的数据 }).then (验证通过的处理).catch (验证失败的处理)

验证- Promise 写法:当validator.validate中的name(key) 与 descriptor中的name(key)相同 时,就可以使用规则去验证 对应的值。.then 即验证通过 ,.catch 即验证失败 其中有两个错误信息 ++errors++ ++输出所有的错误信息++ ++fields++ ++提示具体哪些字段出现了问题++


github地址 :yiminghe/async-validator: validate form asynchronous

安装:npm install async-validator --save

使用:

1.引入Schema

2.创建 Schema 实例

3.验证:实例调用validate方法验证(两种验证方式:① 回调,② Promise)

注:descriptor ,name为key 可以任意取名,name 里的 rules 即 定义好的预设类型规则。


验证方法- Promise的写法 :当 validator.validate中的name(即 key) 与 descriptor中的 name(即 key)相同 时,就可以使用规则 去 验证对应的值。

.then(),即验证通过

.catch(),即验证失败。其中,有两个错误信息errors 输出所有的错误信息,fields 提示具体哪些字段出现了问题。


官网给的参考代码(两种验证方法:回调/Promise):

javascript 复制代码
import Schema from 'async-validator';
const descriptor = {
  name: {
    type: 'string',
    required: true,
    validator: (rule, value) => value === 'muji',
  },
  age: {
    type: 'number',
    asyncValidator: (rule, value) => {
      return new Promise((resolve, reject) => {
        if (value < 18) {
          reject('too young');  // reject with error message
        } else {
          resolve();
        }
      });
    },
  },
};
const validator = new Schema(descriptor);
validator.validate({ name: 'muji' }, (errors, fields) => {
  if (errors) {
    // validation failed, errors is an array of all errors
    // fields is an object keyed by field name with an array of
    // errors per field
    return handleErrors(errors, fields);
  }
  // validation passed
});

// PROMISE USAGE
validator.validate({ name: 'muji', age: 16 }).then(() => {
  // validation passed or without error message
}).catch(({ errors, fields }) => {
  return handleErrors(errors, fields);
});

应用 例子:

innerValue 为 model 数据,itemRules为规则,

实例化一个Schema, [modelName]:规则,调用 validate 验证规则。

当validator.validate中的name(key``) 与 ``descriptor中的name(key``)相同 时,就可以使用规则去验证 对应的值。.then 即验证通过 ,.catch 即验证失败 其中有两个错误信息 ++errors++ ++输出所有的错误信息++ ++fields++ ++提示具体哪些字段出现了问题++

RuleItem 规则类型 ,点击进去 可以查看所有的规则选项:

ValidateError、ValidateFieldsError:指明 错误信息的类型

类型 :如 email,可以验证是否为正确的email格式。

相关推荐
爱勇宝10 小时前
研究数字孪生的这半年,做了个 Demo,也有了一些新想法
前端·程序员
不可能片场10 小时前
工程实践 一个缓存把选片从十分钟压到一分钟
前端·electron
前端小万10 小时前
探索副业五个月,最终以放弃告终
前端·后端·面试
FRing0310 小时前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
171320330计算机毕设编程11 小时前
计算机毕业设计 基于springboot+vue的在线观鸟视频播放网站 LW PPT
java·大数据·vue.js·spring boot·算法·课程设计
葡萄城技术团队11 小时前
在 SpreadJS 里新增右键菜单,把业务动作放到用户手边
前端
大明二代11 小时前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能
deli00711 小时前
代码截图一键出 PNG 实测:3 种窗口风格,长行超 95 字符会被裁
前端
大哥430911 小时前
慢 ≠ 挂:AI 搜索降级判定的设计,与一次 reasoning 模型排查复盘
前端
UaoN11 小时前
作为全栈开发者,为什么看到 Shopify 回归原生,我依然选择 React Native
前端·后端