npm 包 @davidbabel/formik 使用教程

简介

@davidbabel/formik 是一个类似于 React 的表单库,它的特点是避免了 React 在表单验证上的繁琐和重复。在使用 @davidbabel/formik 前,我们需要对 React 有一个基本的了解。

安装

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

使用

基本使用

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

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

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

在上面的代码中,我们使用了 <Formik><Form><Field> 组件。<Formik> 组件是整个表单的根组件,它接收两个 prop:initialValuesonSubmit<Form> 组件用来包裹所有的表单元素,它会自动处理表单提交事件,不需要手动对表单设置提交事件。

<Field> 组件对应表单元素的输入,比如文本框、下拉框、单选框和复选框等。

高级用法

表单验证

我们可以使用 Yup(一个 JavaScript 对象模式的验证器库) 来进行表单验证。在我们的表单组件里,添加 validationSchema 属性。

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

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

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

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

表单联动

我们可以使用 FieldArray 组件对表单元素进行分组。例如,假设我们有一个包含多个地址的表单,每个地址包含收件人、电话和地址等字段。我们可以使用 FieldArray 来组织表单结构。

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

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

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

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

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

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

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

总结

@davidbabel/formik 简化了表单操作,让表单验证、提交和联动更加便捷。它可以极大地减少开发者的工作难度,在 React 项目中使用,可以提高开发效率,并减少错误的发生。

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


猜你喜欢

  • npm 包 @rrpm/netlify-cms-widget-file 使用教程

    在前端开发中,一个好的 CMS 方案是非常重要的。在 Netlify CMS 中,@rrpm/netlify-cms-widget-file 是一个非常实用的插件,它可以帮助我们更好地管理文件。

    3 年前
  • npm 包 @rrpm/netlify-cms-widget-date 使用教程

    在前端开发中,一些功能需要借助外部库或插件来实现,这就需要我们学会如何使用 npm 包。今天,我们将介绍一款名为 @rrpm/netlify-cms-widget-date 的 npm 包,并提供使用...

    3 年前
  • npm包@rrpm/netlify-cms-widget-select使用教程

    @rrpm/netlify-cms-widget-select是一款基于Netlify CMS的开源项目,旨在提供一个可重用的选项列表,以便在Netlify CMS中创建和编辑内容的过程中使用。

    3 年前
  • npm 包 @rrpm/netlify-cms-widget-object 使用教程

    介绍 @rrpm/netlify-cms-widget-object 是一个用于 Netlify CMS 的 npm 包,可以让你在 Netlify CMS 中添加 Object 类型的数据项。

    3 年前
  • npm 包 @rrpm/netlify-cms-widget-text 使用教程

    简介 @rrpm/netlify-cms-widget-text 是一个用于 Netlify CMS 的文本编辑器小部件。它提供了一种简单而强大的方式,让你向你的 Netlify CMS 添加文本编辑...

    3 年前
  • npm 包 andela-portal-cmd 使用教程

    介绍 andela-portal-cmd 是一个 Node.js 的命令行工具,可以让用户更加高效的和 Andela 开发中心的 API 进行交互。在使用该命令行工具前,用户需要进行安装。

    3 年前
  • npm 包 cordova-plugin-neutts 使用教程

    简介 cordova-plugin-neutts 是一个基于 Cordova 的 npm 包,用于实现语音合成的功能。它依赖于科大讯飞的语音合成引擎,可以在 Cordova 应用中快速实现语音合成的功...

    3 年前
  • npm 包 @rrpm/netlify-cms-widget-datetime 使用教程

    在前端开发中,经常需要使用日期时间控件来实现用户在表单中输入时间的功能。而 @rrpm/netlify-cms-widget-datetime 是一个方便易用的日期时间控件 npm 包,它可以轻松地在...

    3 年前
  • npm 包 egg-http-proxy2 使用教程

    介绍 egg-http-proxy2 是一款 Node.js 的 HTTP 反向代理工具,基于 Egg.js 框架开发。它可以将 HTTP 请求转发到另一个服务器进行处理,并支持跨域请求。

    3 年前
  • npm 包 @rrpm/netlify-cms-widget-image 使用教程

    前言 在前端开发中,网站后台管理需要使用到内容管理系统(CMS)。其中,Netlify CMS 是一个很常用的方案,它提供了强大的支持,包括图像管理。而 @rrpm/netlify-cms-widge...

    3 年前
  • npm 包 @rrpm/netlify-cms-widget-relation 使用教程

    前言 在网站的开发中,通常需要管理多个实体之间的关系。如果这些实体数量巨大而且复杂,手动管理它们之间的关联关系越来越困难。在这种情况下,通常会使用实体关系图(Entity-Relationship D...

    3 年前
  • NPM 包 @rrpm/netlify-cms-widget-list 使用教程

    @rrpm/netlify-cms-widget-list 是一款方便网站管理员在 Netlify CMS 中添加列表 (List) 类型字段的插件。本文将为前端开发者介绍如何使用该插件,并深入探讨它...

    3 年前
  • NPM 包 kmeans-clust 使用教程

    前言 K-Means 算法是一种经典的聚类算法,它可以将 n 个样本划分成 k 个不同的类别,每个样本属于离其最近的中心点所对应的类别。K-Means 算法广泛应用于机器学习、数据挖掘、图像处理等领域...

    3 年前
  • npm 包 bracketzada 使用教程

    在前端开发中,代码格式化是一个很重要的话题。好的代码格式化可以让代码更加易读、易维护。但是手动进行代码格式化工作显然很繁琐,而且很容易出现错误,所以我们需要使用自动化工具来完成这个任务。

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

    简介 swipeable-modal-react-native 是一个 React Native 的 npm 组件库,提供了一个易于使用且功能强大的模态框组件。这个模态框可以滑动打开或关闭,并支持自定...

    3 年前
  • npm 包 @toei-jp/cinerino-api-abstract-client 使用教程

    在前端开发中,我们经常需要访问 API 来获取数据或完成一些其他操作。但是,每个 API 都有其特点和规范,因此为了避免重复造轮子并提高效率,我们可以使用现有的 API 抽象库,其中之一就是 @toe...

    3 年前
  • npm 包 gce-elastic-docker 使用教程

    前言 gce-elastic-docker 是一个 npm 包,在 Google Compute Engine (GCE) 上创建弹性可扩展的 Docker 容器集群时非常有用。

    3 年前
  • npm 包 jike-open-js-sdk 使用教程

    简介 jike-open-js-sdk 是一款用于集成即刻开放平台接口的 npm 包,它提供了一系列简易的 API,方便开发者快速地接入即刻开放平台的服务。 安装 在使用 jike-open-js-s...

    3 年前
  • npm 包 @rrpm/netlify-cms-ui-default 使用教程

    在前端开发中常常需要用到一些现成的工具或者库来帮助我们更快更轻松地完成 web 应用的开发。使用 npm 包就是一种非常常见和方便的方式,因为 npm 上有很多成熟、可靠的包供我们使用。

    3 年前
  • npm 包 rax-core-test 使用教程

    rax-core-test 是一个基于 Rax 框架的单元测试框架。它提供了一套易用的 API,可以让你方便地针对组件和页面进行测试。在这个教程中,我们将详细介绍 rax-core-test 的使用方...

    3 年前

相关推荐

    暂无文章