React-Formish 使用教程

React-Formish 是一个用于构建 React 表单的 npm 包,它使用简单,灵活且易于扩展。在这篇文章中,我们将介绍如何使用 React-Formish 来创建表单,并说明 React-Formish 的核心概念和用法,以及我们如何利用它来使表单交互更加智能。

安装 React-Formish

要使用 React-Formish,您需要使用 npm 在终端中安装它。在您的 React 项目中打开终端,并输入以下命令:

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

这将为您的项目添加 React-Formish 的 npm 包以及其依赖。

使用 React-Formish 创建表单

让我们假设您需要创建一个包含三个字段的表单:姓名、邮箱和出生日期。以下是创建该表单的代码示例:

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

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

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

在此示例中,我们首先导入 FormField 组件。Form 组件是 React-Formish 的入口点,它负责渲染表单和收集表单数据并将其传递给调用者提供的回调。Field 组件是表单中每个字段的渲染器,它构建一个带有标签和输入框的表单控件,并将 api 传递给 Form 组件收集数据。

接下来,我们创建一个名为 MyForm 的 React 类组件,该组件渲染了一个 Form 元素,并将 onSubmit 函数作为其属性传递。该函数用于处理表单提交事件并输出表单当前状态下的值。 最后,我们在 Form 元素中添加三个 Field 元素,它们分别代表名字,电邮和出生日期,在每个 Field 元素上设置了一个 namelabel 属性,并在 dob 字段的 type 属性上设置了值为 date,这告诉 Field 组件渲染一个日期输入框。

React-Formish 的表单验证和提交

默认情况下,React-Formish 不执行任何表单验证。当您提交表单时,无论表单当前的状态是否是合法的,处理函数都会被调用。因此,我们需要为我们的表单添加一些验证。 当表单被提交时,需要执行验证的方法为 {valid} = this.props,此方法将在 Form 中使用 onValidate 属性调用,onValidate 是回调验证函数。

以下是改进后的示例代码:

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

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

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

在此代码中,当表单被提交时,验证函数 onValidate 将调用。 onValidate 接收收集到的表单数据的值作为参数。在此示例中,我们执行一些基本验证,例如确保用户名和电子邮件地址已填写,电子邮件地址格式正确,出生日期有效等,并将所有错误放入 errors 对象中。由于 errors 对象为空,因此 React-Formish 将表单状态判定为已通过验证,可以向后调用 onSubmit 函数。

我们还更新了 render 函数代码。在它里面,我们使用 this.props.errors 来呈现表单错误消息,并在每个字段声明下添加一个 div 元素,用于按规定的格式和样式呈现错误消息。 如果表单 onValidate 验证执行时,表单错误对象进入 this.props.errors,导致 this.props.errors.{name(email/dob)} 是true. 然后这个验证的错误消息呈现告知用户表单的问题。

总结

React-Formish 是一个非常好用的 npm 包,它为 React 表单组件提供了灵活的构建方式,具备简单的扩展性且可以轻松集成验证。通过利用本文讲解的 React-Formish 提供的各种功能和函数,我们可以轻松构建复杂的表单,并为组件添加交互性。

完整的 React-Formish 示例代码可以从 https://github.com/jondot/react-formish 得到。

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


猜你喜欢

  • npm 包 viewerjs_zxy 使用教程

    前言 在前端开发中,我们常常需要使用图片预览功能,这时候往往需要使用一些第三方的插件。而 viewerjs_zxy 则是一个非常优秀的基于 JavaScript 的图片预览插件。

    3 年前
  • npm 包 @frontender-magazine/fm-user 使用教程

    前言 Node.js 是一个事件驱动的非阻塞 I/O 的开源服务器框架,拥有快速高效、轻量级能力。npm (Node Package Manager) 是 Node.js 的包管理工具,它为开发者和团...

    3 年前
  • npm 包 ald-vue-image-crop 使用教程

    在前端开发中,我们常常需要对图片进行裁剪处理,例如头像上传、商品图片展示等等。为了方便开发人员处理这些需求,npm 社区中有很多开源的图片裁剪工具,ald-vue-image-crop 就是其中之一。

    3 年前
  • npm包 @sqrtofsaturn/xbox-controller-node 使用教程

    前言 @sqrtofsaturn/xbox-controller-node 是一个npm包,用于在Node.js中读取Xbox控制器的输入数据。在前端开发中,我们有时需要掌握用户设备的输入状态,例如输...

    3 年前
  • npm 包 compa 使用教程

    在前端开发中,有许多包可以让我们更好地完成工作。其中,compa 是一个非常有用的 npm 包。该包可以让我们在不同的浏览器环境中测试页面、应用程序和组件的兼容性。

    3 年前
  • npm 包 @write-for-christ/prophet-samuel 使用教程

    简介 @write-for-christ/prophet-samuel 是一款前端开发中非常实用的 npm 包。它可以在你编写 JavaScript 代码的同时,检查你的文本内容,发现并纠正一些常见的...

    3 年前
  • npm 包 redan 使用教程

    简介 redan 是一种编码方式,用于将普通文本转换成一种古老的复杂语言,以保护消息的机密性。而 npm 包 redan 则是一个用于 JavaScript 编程语言的 redan 实现。

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

    在使用 React Native 进行开发时,我们经常会需要使用一些第三方模块或库。而在这些模块或库中,有一部分需要从远程服务器上加载,这时候我们就需要使用 react-native-remote 这...

    3 年前
  • npm 包 config-for-dev 使用教程

    npm是Node.js的包管理工具,其强大的开源社区为Node.js生态系统带来了各种各样的工具和库。config-for-dev是一个优秀的Node.js包,它能够为前端开发人员提供简单而直观的本地...

    3 年前
  • npm 包 transomclient-ng 使用教程

    简介 transomclient-ng 是一个基于 Angular 框架构建的轻量级的客户端扩展模块,它提供了一些常用的功能模块,例如:Cookie 操作、日志记录、API 请求等。

    3 年前
  • npm 包 colorful-assert 使用教程

    colorful-assert 是一个基于 Node.js 的 npm 包,它可以让你的 JavaScript 断言更加可视化,使得调试过程更加方便和高效。 在本次教程中,我们将一步步地学习如何安装和...

    3 年前
  • npm 包 botpress-api.ai-mod 使用教程

    在前端开发中,经常需要与机器人进行交互,以解决用户提问的问题。而 botpress-api.ai-mod 正是一款能够实现这一功能的 npm 包。 本篇文章将为大家提供 botpress-api.ai...

    3 年前
  • npm包midc使用教程

    介绍 midc是一个能将 Markdown 文档转换成中文格式的npm包,用于博客、文档等方面的制作。midc是提供给前端工程师的工具,使用上非常简便,需要了解的知识非常少。

    3 年前
  • npm 包 angular4-protractor-cucumber 使用教程

    介绍 angular4-protractor-cucumber 是一个基于 Angular4 和 Protractor 的测试框架,使用 Cucumber 语法编写测试用例。

    3 年前
  • npm 包 obstore 使用教程

    前言 随着 Web 应用程序的不断发展,前端技术的要求也越来越高。前后端分离已经成为了 Web 应用程序架构的标配,同时前端的状态管理也得到了更多的关注和提高。本文将为大家介绍一款前端状态管理工具:o...

    3 年前
  • npm 包 mui-color-constants 使用教程

    前言 在前端开发中,处理颜色是一个十分重要的部分。使用颜色常量可以使得代码更具有可读性和可维护性。而 npm 包 mui-color-constants 提供了 Material UI 中所定义的颜色...

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

    如果你是一名前端开发者,那么你一定了解 ESLint。它是一个用于代码检查的工具,可以帮助我们避免一些常见的编码错误,提高代码的质量和可读性。而 eslint-config-concrete-reac...

    3 年前
  • npm 包 precision-inputs 使用教程

    在前端开发中,常常需要对用户输入的数据进行精度控制,例如金额、比率等等。这时,我们可以使用 npm 包 precision-inputs 来解决这个问题。本文将为大家详细介绍 precision-in...

    3 年前
  • npm 包 @dvermeir/cbuf 使用教程 —— 实现环形缓冲区

    简介 @dvermeir/cbuf 是一个基于 JavaScript 的 npm 包,提供了一种实现环形缓冲区的方式。使用这个包,可以方便地处理数据的循环存储和读取,适用于流式数据处理、嵌入式开发等场...

    3 年前
  • npm 包 aframe-network-component 使用教程

    简介 aframe-network-component 是一个基于 A-Frame 框架的网络组件,它可以帮助开发人员在虚拟现实应用程序中实现网络同步。 安装 使用 npm 安装 aframe-net...

    3 年前

相关推荐

    暂无文章