npm 包 sm-validation-module 使用教程

简介

sm-validation-module 是一个轻量级的前端验证库,其目的是为了方便开发人员快速进行表单验证。该库支持多种数据类型验证,支持自定义验证方法,同时也支持异步验证。

安装

使用 npm 进行安装:

--- ------- -------------------- ------

使用示例

常规验证

------ ---------------- ---- -----------------------

----- ---------------- - --- -------------------
----- ----- - -
  - ----- ----------- --------- ----- -------- -------- --
  - ----- ----------- --------- ----- -------- ------- --
--
----- ---- - - --------- --- --------- -- --

----- ------ - -------------------------------- ------

-------------------- -- -- -- ----- ----------- -------- -------- -- - ----- ----------- -------- ------- --

在上述示例中,我们使用 ValidationHelpervalidate 方法对 data 数据进行验证。rules 数组包含需要验证的字段及其规则,例如 { name: 'username', required: true, message: '请输入用户名' } 表示验证 data 对象中的 username 字段是否为空,如果为空,则返回错误消息 '请输入用户名'

自定义验证方法

我们可以使用 ValidationHelper 类的 addMethod 方法添加自定义验证方法:

------ ---------------- ---- -----------------------

----- ---------------- - --- -------------------
----- ----- - -
  - ----- -------- ------ ----- -------- ------------ --
--
----- ---- - - ------ -------- --

----------------------------------- ------- -- -
  ----- -------- - ------------------------------------------------
  ------ ---------------------
---

----- ------ - -------------------------------- ------

-------------------- -- -- -- ----- -------- -------- ------------ --

异步验证

对于需要异步验证的规则,我们可以使用 promise 对象返回结果。

------ ---------------- ---- -----------------------

----- ---------------- - --- -------------------
----- ----- - -
  -
    ----- -----------
    --------- -----
    -------- ---------
  --
  -
    ----- --------
    ------ -----
    -------- -------------
    --------------- ------- -- -
      ------ --- ----------------- ------- -- -
        ------------- -- -
          ----------
        -- ------
      ---
    --
  --
--
----- ---- - - --------- --- ------ -------- --

----- ------ - ----- ------------------------------------- ------

-------------------- -- -- -- ----- ----------- -------- -------- -- - ----- -------- -------- ------------ --

在上述示例中,我们添加了一个异步验证方法 asyncValidator,在验证 email 字段时会异步返回结果,等待 1 秒钟后才会验证通过。

API 文档

ValidationHelper

  • validate(rules: ValidationRule[], data: Record<string, any>): ValidationError[],常规验证方法,返回错误消息列表。
  • validateAsync(rules: ValidationRule[], data: Record<string, any>): Promise<ValidationError[]>,异步验证方法,返回 promise 对象,可以使用 await 等待异步方法的返回。
  • addMethod(name: string, validator: (value: any) => boolean): void,添加自定义验证方法。
  • setLocale(locale: string): void,设置本地化语言(默认为英文)。

类型定义

  • ValidationRule,验证规则,对象类型,包含以下属性:

    • name: string,字段名称,必须与 data 中的字段名称对应。
    • validator?: (value: any) => boolean,自定义验证方法,如果提供了该属性,无需提供 typerequired 属性。
    • type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'email' | 'url' | 'date' | 'datetime',数据类型,可选,default: 'string'。
    • required?: boolean,是否必填,可选,default: false。如果设置了该属性,则 validator 属性无效。
    • message?: string,错误提示信息,可选。
    • asyncValidator?: (value: any) => Promise<void>,异步验证方法,可选。
  • ValidationError,错误消息类型,对象类型,包含以下属性:

    • name: string,字段名称,必须与 data 中的字段名称对应。
    • message: string,错误提示信息。

总结

sm-validation-module 是一个功能丰富,易于使用的前端验证库。我们可以使用该库快速实现表单验证,并且支持自定义验证方法和异步验证。本文介绍了如何在项目中使用该库,希望对读者有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005671f81e8991b448e384f


猜你喜欢

  • npm 包 create-react-stack 使用教程

    什么是 create-react-stack create-react-stack 是一个用于快速创建基于 React 的 Web 开发框架的 npm 包,他遵循了最佳实践和规范,将 React、We...

    3 年前
  • npm包blogger-posts使用教程

    简介 npm(Node Package Manager)是Node.js的包管理器,可以方便地查找、安装和管理模块。而blogger-posts是一款专门为博客程序而编写的npm包,可以用来快速地获取...

    3 年前
  • npm 包 buderus2mqtt 使用教程

    在前端开发中,我们使用许多的 npm 包来简化我们的工作。其中,buderus2mqtt 是一个非常有用的 npm 包,它可以将 Bosch Buderus 暖气系统的参数通过 MQTT 传输到服务器...

    3 年前
  • npm 包 iis-bardate-domains-parser 使用教程

    在前端开发中,我们常常需要解析 URL 中的域名和日期信息,以便实现特定的业务逻辑。iis-bardate-domains-parser 是一个能够方便地解析 URL 中的域名和日期信息的 npm 包...

    3 年前
  • npm 包 siwi-json 使用教程

    在前端开发中,我们经常需要对数据进行序列化和反序列化,这时最常用的方式就是将数据转换成字符串或解析字符串成数据对象。对于这个需求,我们可以使用 npm 包 siwi-json。

    3 年前
  • npm 包 spinner-angular 使用教程

    前言 在开发 Web 应用时,我们经常需要在页面上展示 loading 状态,以便提示用户当前数据正在加载中,这一般通过使用 spinner 效果来实现。而 spinner-angular 就是可以使...

    3 年前
  • npm 包 react-native-elapsed-time 使用教程

    React Native 是一种基于 JavaScript 的开源移动应用开发框架,可用于在 iOS 和 Android 设备上构建高质量的移动应用。在 React Native 中,npm 包是非常...

    3 年前
  • npm 包 streaming-middleware 使用教程

    前言 在前端开发中,处理数据流通常是不可避免的任务。为了简化这个过程,出现了一些称为“中间件”的工具。本文将介绍一个 npm 包——streaming-middleware,教你如何使用它来处理数据流...

    3 年前
  • npm 包 @wturyn/swagger-injector 使用教程

    在现代的 Web 开发中,接口文档对于前后端协作开发非常重要。Swagger 是一个非常流行的 API 文档工具,通过使用 Swagger,我们可以更好地协同开发和交流。

    3 年前
  • npm 包 eslint-config-lokaltog 使用教程

    在前端开发中,代码规范是非常重要的,它可以提高代码的可读性和可维护性。ESLint 是一个常用的 JavaScript 代码检查工具,它可以帮助开发者在开发过程中发现代码中的问题,并根据已定义的规则给...

    3 年前
  • npm 包 react-grid-hoc 使用教程

    React-grid-hoc 是一款基于 React 的高阶组件,用于快速构建灵活的、具有表格功能的 Web 应用程序。它支持多种组合和样式自定义,使得开发人员可以轻松实现可扩展性和可重用性的表格组件...

    3 年前
  • npm 包 ipfs-image-web-upload 使用教程

    什么是 ipfs-image-web-upload ipfs-image-web-upload 是一个基于 IPFS(InterPlanetary File System) 的前端上传工具,它可以方便...

    3 年前
  • npm 包 my-loopback-filter 使用教程

    前言 随着 Node.js 的不断发展,我们构建后端服务的方式也不断地变化。其中 LoopBack 是一个非常好用的 Node.js 框架,它可以快速地生成 RESTful API,同时也有非常灵活的...

    3 年前
  • npm 包 require-dynamic-exec 使用教程

    require-dynamic-exec 是一个可以在客户端动态加载和执行 JavaScript 的 npm 包。这个包可以让你在客户端创建一个 &lt;script&gt; 标签来动态载入 Java...

    3 年前
  • npm 包 siwi-microservice 使用教程

    简介 Siwi-microservice 是一个基于 Node.js 的微服务框架,可以快速的帮助开发者实现微服务的开发。本文主要介绍如何使用 npm 包 siwi-microservice 进行开发...

    3 年前
  • npm 包 webpack-startup-messages-plugin 使用教程

    前言 在前端开发中,我们经常会使用 webpack 这样的打包工具来对项目文件进行处理。而随着项目规模的增大,我们需要更好的管理和查看打包过程中的日志信息,以便更好地定位问题和优化性能。

    3 年前
  • npm 包 @apkawa/muicss 使用教程

    在前端开发中,使用优秀的 UI 框架和库能够快速提升产品的界面设计和用户体验。@apkawa/muicss 是一款轻量级的 UI 框架,它基于 Material Design 规范并使用原生 CSS ...

    3 年前
  • npm 包 socket-rest 使用教程

    简介 socket-rest 是一个可以轻松在浏览器和 Node.js 之间建立通信的 npm 包。它基于 WebSocket 和 AWS API Gateway,使用起来非常方便。

    3 年前
  • npm 包 create-empty-folders 使用教程

    在前端开发中,我们经常需要在项目中创建一些空文件夹来组织代码结构。如果手动创建这些空文件夹的话,还是比较麻烦的。那么有没有什么工具可以帮助我们快速地创建空文件夹呢?答案当然是肯定的。

    3 年前
  • npm 包 nomorepass 使用教程

    在日常开发中,我们经常需要处理用户密码的安全问题。但是,由于许多人使用弱密码或使用相同的密码来登录多个网站,密码泄漏变得越来越常见。为了更好地保护用户密码,nomorepass 是一款 npm 包,能...

    3 年前

相关推荐

    暂无文章