npm 包 redux-duck-form 使用教程

介绍

redux-duck-form 是一个基于 Redux 和 React 的表单管理库。它通过 Redux 的机制进行状态管理,在 React 上提供了一种简单、灵活的方式来管理表单的数据和验证。

安装

使用 npm 安装:

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

使用示例

初始化

使用 reducer 作为表单的状态管理器,初始化表单状态:

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

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

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

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

createFormReducer 会返回一个用于管理表单的 reducer 函数,传入 formKey 可以标识出该表单在整个应用中的唯一性。

表单类型和字段

定义表单的类型和字段,可以通过 redux-duck-form 提供的 higher order component(HOC)createForm 配合表单控件的名字注册到 redux store 上。

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

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

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

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

在此例中,connect() 用于将 React 组件和 Redux store 连接。createForm 是高阶函数,用于将表单控件和 formKey 注册到 Redux store 上。

将表单数据和验证规则和 UI 绑定

redux-duck-form 提供了 HOC bindFormItem,可以将表单字段与 Redux store 绑定,如下所示:

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

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

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

其中,bindFormItem 可以自动将 value 和 onChange 的属性注入到表单控件中,实现了数据和 UI 的绑定。

表单验证规则

通过在 reducer 上定义 validate 方法,可以实现表单验证:

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

结论

redux-duck-form 提供了在 React 项目中管理表单状态和验证的标准化解决方案。通过它,我们可以轻松地根据需要定义表单类型、字段、验证规则,减少了代码的冗余,提高了组件的可复用性和可维护性。

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


猜你喜欢

  • npm 包 arisejs 使用教程

    在前端领域,npm 是一个非常重要的工具。它管理着成千上万的 JavaScript 包,为开发者提供了无穷无尽的可能性。其中,arisejs 就是一个非常有用的 npm 包,它可以让我们轻松地实现各种...

    3 年前
  • npm 包 iaxios 使用教程

    在前端开发中,我们经常需要向后端发起 HTTP 请求以获取数据。用于发送 HTTP 请求的第三方库有很多,其中一款较为流行的是 axios。 iaxios 是 axios 的一个封装,它可以让你使用 ...

    3 年前
  • npm 包 iscanner-qrcode 使用教程

    背景 随着移动互联网的快速发展,扫码成为了现代生活中的一项重要功能。在前端开发中,如何快速实现扫码功能也成为了一个优先考虑的问题。 npm 包 iscanner-qrcode 能够帮助开发者快速实现扫...

    3 年前
  • NPM包platzom-angelp11的使用教程

    在前端开发中,我们经常会使用到各种NPM包,这些包大大提高了我们的工作效率和代码质量。其中一个非常有用的NPM包就是platzom-angelp11。在本文中,我将详细介绍如何使用这个包以及它的深层次...

    3 年前
  • npm 包 totem.module.top-bar 使用教程

    作为现代前端开发者,我们日复一日地使用各种工具和技术来构建应用程序和网站。而其中一个最强大的工具就是 npm。npm 是 Node.js 的包管理工具,可用于安装、管理和发布各种 JavaScript...

    3 年前
  • npm 包 college_web 使用教程

    在前端开发中,我们需要使用各种依赖包来辅助开发。在 npm(https://www.npmjs.com/) 上,有许多可以提高我们开发效率的包。今天,我们要介绍的是一个叫做 college_web 的...

    3 年前
  • npm 包 live-form-validation 使用教程

    在前端开发中,表单验证是必不可少的一部分。有许多库和插件可以帮助我们实现表单验证,而 npm 包 live-form-validation 是一个非常好用的表单验证工具,本文将详细介绍它的使用方法。

    3 年前
  • npm 包 google-map-react-styles 使用教程

    在前端开发中,Google Map 是一个非常强大的工具,可以用于各种不同的应用场景,例如地图导航、位置定位、商铺标注等等。google-map-react-styles 是一个基于 React 的 ...

    3 年前
  • npm 包 chroniq 使用教程

    1. 简介 chroniq 是一个可重用的事件日历组件,它可以帮助您快速创建一个美观且易于使用的事件排期日历。它是通过 npm 安装和使用的,可以将它与任何前端框架(比如 React 或 Vue.js...

    3 年前
  • npm 包 simdux-logger 使用教程

    simdux-logger 是一个用于在浏览器控制台中记录 Redux 中发生的动作和状态更改的 npm 包。它使用简单并且适用于所有 Redux 应用程序。本文将详细介绍 simdux-logger...

    3 年前
  • npm 包 eilloy 使用教程

    简介 eilloy 是一款基于 JavaScript 的 npm 前端库,它可以帮助我们快速地实现一些常用的前端业务逻辑,比如拖放、表单校验、异步请求等等。本文将为大家详细介绍如何使用 eilloy ...

    3 年前
  • npm包 @avoine/mobile-components 使用教程

    介绍 近年来,React Native移动应用开发越来越受到开发者们的关注。@avoine/mobile-components是一个基于React Native平台的npm包,包含了一系列移动组件,如...

    3 年前
  • npm 包 @avoine/mobile-init 使用教程

    简介 @avoine/mobile-init 是一个帮助前端开发者快速启动基于 React Native 构建的移动应用项目的 npm 包。它提供了一个简便的脚手架工具,允许开发者在几分钟之内启动一个...

    3 年前
  • npm 包 parcel-plugin-mustache 使用教程

    在现代的前端开发中,模块化已经成为了不可或缺的一部分。很多时候我们都需要使用一些预编译模板来帮助我们快速构建复杂的前端页面。在这方面,Mustache 是一个非常流行的模板引擎,它使用简单、易于理解,...

    3 年前
  • npm 包 js-retrieve 使用教程

    前言 在前端开发过程中,经常需要使用第三方库来完成一些功能。然而,有时我们只需要使用其中的一部分代码,或者想将其中的一部分代码进行修改以满足自己的需求。这时候,我们就需要采用某种方式来获取这些代码并引...

    3 年前
  • npm 包 koa-better-send 使用教程

    在使用 koa 进行后端开发的过程中,我们常常需要将文件或静态资源发送给前端。虽然 koa 本身提供了一些处理静态资源的中间件,但是这些中间件的功能十分有限,并且难以满足我们的各种需求。

    3 年前
  • npm 包 osrs-wiki 使用教程

    osrs-wiki 是一款针对 RuneScape Old School(OSRS)的 npm 包,允许开发者通过 JavaScript 操作对应用程序的交换品进行查询。

    3 年前
  • npm 包 express-method-override-get-post-support 使用教程

    简介 express-method-override-get-post-support 是一个 npm 包,用于处理 HTTP POST 和 GET 请求中的方法覆盖(Method Override)...

    3 年前
  • npm 包 react-infinity-loading 使用教程

    在前端开发中,我们经常会遇到需要加载大量数据的情况,这时我们就需要使用类似“无限滚动”这样的功能来解决。react-infinity-loading 是一个基于 React 框架实现的 npm 包,它...

    3 年前
  • npm 包 @auicomponents/page 使用教程

    介绍 @auicomponents/page 是一个专为前端开发者设计的 npm 包,可以让你快速创建可重用的页面模块,简化前端页面的开发过程。本篇文章将详细介绍如何安装和使用该包。

    3 年前

相关推荐

    暂无文章