npm 包 joi-validation-strategy 使用教程

前言

在前端开发中,表单验证是必不可少的,为了方便开发者实现表单验证,社区中有很多优秀的表单验证库。本文将介绍一款基于 Joi 和 Angular 的表单验证策略库 joi-validation-strategy,同时也适用于 React、Vue 和其他框架。

介绍 Joi 和 joi-validation-strategy

Joi 是 Node.js 中一个强大的验证库,它可以验证 JavaScript 对象是否符合特定规则,包括必填、最大长度、最小值等等。而 joi-validation-strategy 是在 Joi 基础上,与 Angular 组件结合,提供了更加专业的表单验证策略。

相较于其他表单验证库,joi-validation-strategy 具有以下几个优点:

  1. 当需要进行表单验证时,通过定义一组规则,只需要相应地执行验证即可,使表单验证变得非常简单。

  2. 如果需要将验证规则添加到现有的模型中,则 joi-validation-strategy 可以轻松实现这一目标。

  3. joi-validation-strategy 还提供了许多预处理器和后处理器,以便流程更完整,便于使用。

安装 joi-validation-strategy

joi-validation-strategy 是一个 npm 包,所以在使用之前需要先安装。

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

使用 joi-validation-strategy

下面将通过一个简单的表单示例来演示 joi-validation-strategy 的使用方法。首先,我们需要定义表单数据模型:

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

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

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

Joi.schema 可以帮助我们定义我们的 User 模型,并检查我们的数据是否符合预期。现在,我们已经定义了 User 模型,接下来是定义 Angular 表单项的验证。

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

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

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

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

    -------------------------------------------------
    ---------------------------------- ----- --- ---- - ---
    -------------------------------------------------------------
    -------------------------------------------------------
  -
-
  • 我们在 NgModule 中注入了 ValidationStrategy,
  • 在 ngOnInit 生命周期中,我们初始化组件属性以及将模式、模型和观察值属性分配给验证策略。

此时,我们应该有能力将我们的表单项添加到 HTML 文件并绑定事件。

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

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

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

对表单组件的验证

接下来,我们将添加一个表单验证函数。它将检查我们的模型是否符合 Joi.schema 的基础规则。

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

这只是一个示例,因为 joi-validation-strategy 还有许多其他方法和管道可以使用,例如:

  • validate():对提交表单时执行验证进程
  • getModel<T>():将表单控件和规则用作参数,并尝试将结果映射到指定类型的对象
  • setError<T>():设置指定字段的验证错误的消息
  • setAllErrors<T>():设置所有与当前表单相关的验证错误消息
  • resetError<T>():重置指定字段的验证错误消息
  • resetAllErrors<T>():重置当前表单项的所有验证错误消息

验证结果回显到用户面前

[verify-all-errors.pipe.ts] 内实现了一个 Angular 管道,使开发者有一种方式可用以处理多个错误消息,并将其回显到用户。

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

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

然后,可以在组件模板 HTML 文件中使用这个管道。

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

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

这将生成一个简单的错误消息,告诉我们为什么无法提交表单。具体来说,我们可以看到将在控制台上传递错误消息的机制,以便在调试时进行查看。

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

结论

在本文中,我们介绍了 joi-validation-strategy 这款基于 Joi 和 Angular 的表单验证策略库,以及它的优秀特性和基本用法。我们使用了一个简单的示例展示了 joi-validation-strategy 的使用方法,并演示了如何通过 validate() 方法执行表单验证进程以及如何将验证结果回显到用户面前。通过这篇文章,希望读者对 joi-validation-strategy 有了进一步的了解。

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


猜你喜欢

  • npm 包 @umijs/runtime 使用教程

    简介 @umijs/runtime 是 umijs 框架的运行时包,提供了一些基础能力和工具方法,方便前端开发者在使用 umijs 时进行一些高级操作,如动态引入模块、插件扩展等。

    4 年前
  • npm 包 `lucio-cli` 使用教程

    在前端项目开发中,经常需要进行构建、打包、压缩等操作。lucio-cli 是一款基于 Node.js 开发的轻量级脚手架工具,提供了各种命令行工具,帮助开发者快速构建前端项目。

    4 年前
  • npm 包 umi-plugin-polyfills 使用教程

    在开发前端应用时,我们常常需要根据不同浏览器的兼容性问题对代码进行适配处理,为了方便前端开发者的工作,npm 上出现了一个非常实用的小工具 umi-plugin-polyfills。

    4 年前
  • npm 包 @types/reserved-words 使用教程

    在前端开发中,我们经常会用到一些关键字,比如 if、for、while 等等。这些关键字往往在语言的语法层面有一定的特殊用途,如果不谨慎使用,就有可能出现语法错误或逻辑错误。

    4 年前
  • npm 包 @umijs/babel-plugin-import-to-await-require 使用教程

    在前端开发中,我们经常会使用各种第三方库来辅助我们的工作。在使用这些库时,我们需要通过 import 引入需要的模块。然而,这种方式会导致代码中出现许多冗余的 import,降低代码的可读性和维护性。

    4 年前
  • npm 包 @umijs/babel-plugin-lock-core-js-3 使用教程

    在前端开发中,我们经常会使用到许多第三方的库和工具,其中包括 Babel。Babel 是一款非常强大的 JavaScript 编译器,可以将最新的 JavaScript 语法转换为当前主流浏览器支持的...

    4 年前
  • npm 包 @umijs/babel-preset-umi 使用教程

    前言 前端框架的发展已经日趋成熟,而随着互联网的发展,协同开发成为了一个经常被提及的话题,在多人协同开发中,项目的规范化显得尤为重要, babel-preset-umi 就是为了解决这个问题而生的。

    4 年前
  • npm 包 @umijs/server 使用教程

    前言 在现代 web 开发中,构建一个优秀的前端应用程序需要使用多种工具和框架。UmiJS 是一个围绕 React 的企业级前端应用框架,可以帮助我们更快地开发高质量、易于维护的前端应用程序。

    4 年前
  • npm 包 @umijs/types 使用教程

    前言 在前端开发中,我们经常需要使用许多第三方库和工具。其中,npm 是一个非常重要的工具,它是一个包管理器,提供了大量的开源包供我们使用。 在本文中,我们将介绍一个特定的 npm 包 @umijs/...

    4 年前
  • npm 包 jsonml-to-react-component 使用教程

    在前端开发中,我们常常遇到需要将数据结构转化成可视化界面的情况。而使用 React 框架则是很多人的首选。在使用 React 进行数据可视化展示的过程中,我们需要将数据结构转化成 React 组件。

    4 年前
  • npm 包 jstoxml 使用教程

    在前端开发中,有时候需要将 JSON 数据转换成 XML 格式进行存储或传输。jstoxml 这个 npm 包就是用于将 JSON 数据转换成 XML 格式的工具。

    4 年前
  • npm 包 umi-plugin-routes 使用教程

    什么是 npm 包 umi-plugin-routes? umi-plugin-routes 是一个基于 umiJS 的插件,用于自动生成路由配置文件,简化前端开发人员在开发过程中的路由配置工作。

    4 年前
  • npm 包 postcss-import-sync2 使用教程

    前言 在前端开发过程中,我们常常需要使用各种工具和框架。其中,PostCSS 是一个非常好用的 CSS 预处理工具,它提供了丰富的插件系统,可以大大增强样式处理的能力。

    4 年前
  • npm 包 eslint-config-exponent 使用教程

    前言 在前端开发中,我们经常会遇到不同的代码规范和风格,这也是团队协作和代码维护的重要一环。ESLint 是一个 JavaScript 的静态代码分析工具,可以检测出代码中的语法错误和潜在问题,并且可...

    4 年前
  • npm包tough-cookie-web-storage-store使用教程

    前言 在前端开发中,我们经常需要使用cookie来存储一些临时数据或者用户状态。但是,由于浏览器默认的cookie机制不够灵活,我们需要通过自己的方式来实现更加个性化的cookie存储方案。

    4 年前
  • npm 包 shoulda 使用教程

    在前端开发中,我们经常需要使用各种工具库和框架来提升开发效率和代码质量。其中,npm 包应该是你最常用的一种工具。而今天,我将要介绍的是 shoulda 这个 npm 包——一个优秀的 JavaScr...

    4 年前
  • npm 包 electron-cookies-alt 使用教程

    在开发前端应用程序时,经常需要处理 Cookie 相关的功能,比如登录、验证用户信息等。而 Electron 提供了一种方便的方式来访问和管理 Cookies。npm 包 electron-cooki...

    4 年前
  • npm 包 microtemplate 使用教程

    在前端开发中,我们经常需要用到模板引擎来生成页面。而 microtemplate 是一款轻量级的模板引擎,它可用于构建单页应用程序和小型脚本。在此篇文章中,我们将学习如何使用 microtemplat...

    4 年前
  • npm 包 torchjs 使用教程

    在前端开发中,深度学习和神经网络已经成为一个非常热门和有趣的领域。但是,实现这些功能需要非常复杂和高级的数学和编程技能。不过,幸运的是,现在有许多基于 JavaScript 的深度学习库,使得前端开发...

    4 年前
  • npm 包 spm-jquery 使用教程

    前言 在前端开发中,我们时常需要使用 jQuery 来进行 DOM 操作和事件绑定等操作。而 spm-jquery 是一个基于 npm 的前端模块包,提供了简单易用的模块化加载 jQuery 的方式。

    4 年前

相关推荐

    暂无文章