NPM 包 Redux-Action-Creator 使用教程

阅读时长 7 分钟读完

1. 什么是 Redux-Action-Creator ?

Redux-Action-Creator 是一个用于简化 Redux 开发的包,可以更快地创建 Redux 动作并移除模板代码。这个包可以让 Redux 开发更加容易,特别对于 Redux 熟悉度不高的人可以使用。Redux-Action-Creator 包含两个核心部分:

  • Action creators:它是一个工厂函数,用于生成 Redux 动作。它简化了动作对象的创建,因为所有的属性都在工厂函数中设置,而不是在每个 Redux 动作对象中手动设置。
  • Action types:包括一个或多个仅用于标识 Redux 动作的字符串类型。它们作为 Redux reducer 的 switch 语句的案例,用于确定如何处理每个 Redux 动作。

2. 安装

使用 NPM 可以方便地安装 Redux-Action-Creator 包。您可以直接执行:

3. 创建动作生成器

使用redux-action-creator创建动作生成器:

这将创建一个名为“MY_ACTION”的新动作生成器。这个动作生成器的数据输入将存储在一个名为“data”的属性中。生成器会返回一个 Redux 动作对象,它包含了动作类型和数据属性,如下所示:

您可以在需要生成这种类型的 Redux 动作时使用 myAction:

4. 创建动作类型

使用redux-action-creator创建动作类型:

这将创建一个只有一个动作类型“MY_ACTION_TYPE”的动作类型生成器。与动作生成器一样,您可以在需要创建这种类型的 Redux 动作类型时使用 myActionTypes:

5. 将 Action Creator 与 Redux 应用程序集成

可以将生成的动作创建函数添加到 Reducer 中,像这样:

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

在这个例子中,myReducer 接收 myAction 类型的 Redux 动作,并简单地将动作数据添加到原始状态中。

6. 将多个动作类型一起合并

您可以将多个动作类型一起合并,以让你在创建 Reducer 时使用相同的命名空间。例如:

这样,您只需要使用一个命名空间和一个 switch语句来处理这两种类型的 Redux 动作,而不是为每种类型单独编写一个 switch 语句。

7. 总结

Redux-Action-Creator 是一个用于简化 Redux 开发的包,它允许您更快地创建 Redux 动作并移除模板代码。通过使用 Redux-Action-Creator ,可以使 Redux 开发更加容易,特别对于 Redux 熟悉度不高的人可以使用。在您的下一个 Redux 项目中尝试使用这个包!

8. 示例代码

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

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067009e361a36e0bce8bdf

纠错
反馈