npm 包 redux-quick-action 使用教程

介绍

redux-quick-action 是一个快速创建 Redux Action 的 npm 包,它通过规范化 Action 的定义方式,使得创建 Action 变得更加简单、直观。

redux-quick-action 相比于 Redux 官方推荐 Action 创建方式,它的定义方式更加简洁明了,避免了书写大量样板代码。

此外,redux-quick-action 还提供了一些便捷函数,帮助我们更方便地创建异步操作,如 redux-thunk 和 redux-saga 等中间件完美集成。

安装

使用 npm 安装:

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

使用

我们首先需要按照规范定义我们的 Action,一个典型的 Action 需要定义 type 和 payload 两个属性,例如:

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

而 redux-quick-action 提供了一种简单、规范的定义方式,我们只需要提供一个字符串类型的 type 和一个任意类型的 payload 就可以了:

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

对比之下,我们可以发现,使用 redux-quick-action 定义 Action 变得十分简单。

createAsyncAction

redux-quick-action 还提供了 createAsyncAction 便捷函数,来帮助我们更方便地创建异步操作:

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

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

在上述代码中,我们使用 createAsyncAction 创建一个名为 fetchUserInfo 的 Action,然后使用 createAsyncEffect 创建一个名为 fetchUserInfoSaga 的 Saga。

配合 redux-thunk 中间件使用

redux-thunk 中间件非常适合处理异步操作,我们可以非常方便地使用 redux-quick-action 和 redux-thunk 配合使用:

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

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

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

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

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

我们首先使用 createAsyncAction 创建一个 Action,然后定义一个 thunk 用于触发异步操作。在 thunk 中,我们首先 dispatch 了一个 start action,用于表示异步操作已经开始。

然后,我们使用 try…catch 语句处理异步操作。在 try 中,我们使用 fetchUserInfoApi 发起异步请求,并将请求的结果通过 dispatch 发送给 reducer。

如果异步操作中出现了异常,我们会通过 catch 局部优化该异常。这些异常的信息会被转化为一个失败的 action,并通过 dispatch 发送到 reducer。

配合 redux-saga 中间件使用

除了 redux-thunk 外,redux-quick-action 还可以与 redux-saga 中间件一起使用:

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

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

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

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

在上述代码中,我们首先使用 createAsyncAction 创建一个名为 fetchUserInfo 的 Action,然后通过 createAsyncEffect 创建了一个 Saga。

在 Saga 中,我们使用 try…catch 语句处理异步操作。在 try 中,我们使用 call 函数调用 fetchUserInfoApi 函数并传递参数 action.payload.id,然后将得到的结果转化为成功 action 并通过 put 发送到 reducer。

catch 中的逻辑和 redux-thunk 相似,将异常信息转为失败 action 并发送到 reducer。

最后,我们需要将 fetchUserInfo 和 fetchUserInfoSaga 注册到 rootSaga 中,这样,当我们 dispatch fetchUserInfo action 时,redux-saga 就会自动执行我们定义的 Saga 了。

示例代码

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

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

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

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

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

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

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

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

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

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

总结

通过本篇文章,我们了解了 redux-quick-action 的原理和使用方式,可以发现,使用 redux-quick-action 可以让我们更加规范地定义 Action 和处理异步操作,避免繁琐的样板代码,提升代码可读性和可维护性。

因此,在日常的 React 和 Redux 开发中,使用 redux-quick-action 将会给我们带来极大的便利。

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


猜你喜欢

  • npm 包 SpiralJS 使用教程

    SpiralJS 是一个前端框架,它允许用户以声明式方式构建使用 3D 技术实现的动态网站。使用 SpiralJS,用户可以轻松创建 3D 模型、动画和交互式体验。

    4 年前
  • npm 包 spiral-rectangle 使用教程

    介绍 spiral-rectangle 是一个用于绘制螺旋矩形的 JavaScript 库,该库可以方便地绘制具有螺旋特性的矩形,非常适用于制作数据可视化图表或者艺术设计等场景。

    4 年前
  • npm 包 spirality 使用教程

    本文介绍 npm 包 spirality 的使用方法,可以帮助前端开发者快速创建旋律图形,以及尝试各种旋律图形生成效果。 什么是 Spirality Spirality 是一个 npm 包,它是由...

    4 年前
  • npm包spire-fcm使用教程

    在前端开发中,使用npm包是很常见的事情。今天我们来了解一下npm包spire-fcm的使用方法及其在前端开发中的指导意义。 简介 spire-fcm是一款用于在前端应用中使用Firebase Clo...

    4 年前
  • npm 包 spire-browserify 使用教程

    简介 Spire 是一个使用纯 JavaScript 实现的加密库,其提供了丰富的加密算法和工具函数,支持在浏览器或 Node.js 中使用。在浏览器端使用 Spire,需要使用 Browserify...

    4 年前
  • npm 包 spirc 使用教程

    介绍 SPIRC(Spotify Connect) 是 Spotify Connect 协议的 JavaScript/Node.js 实现,可用于构建一个可以控制 Spotify Connect 设备...

    4 年前
  • npm 包 spire-fonts 使用教程

    在前端开发中,使用各种优秀的开源库和工具能够大大提高我们的效率和开发体验。今天我们来介绍一个非常实用的 npm 包 —— spire-fonts。 什么是 spire-fonts? spire-fon...

    4 年前
  • npm 包 spm2 使用教程

    什么是 spm2 spm2(Short for SPM 2.0)是一个基于 Node.js 的前端构建工具,它可以很方便地帮助我们管理项目依赖、编译、打包、压缩等等。

    4 年前
  • npm 包 spmh 使用教程

    什么是 spmh? spmh 全称为 Style Property Mapping Hierarchy,是一个用于解决样式高度耦合问题的 npm 包。spmh 的主要作用是将样式属性映射为层级结构,从...

    4 年前
  • npm 包 spn 使用教程

    如果你是一名前端开发者,不经意间或许已经听过或用过 spn 这个 npm 包,SPN 是 "Simple Path Notation" 的缩写,是一种简单的路径表示法。

    4 年前
  • npm 包 spmx 使用教程

    前言 随着前端技术的快速发展,现代前端项目已经离不开构建工具、模块打包工具等。在这其中,npm 就扮演了很重要的角色。npm 是一个包管理工具,可以让开发者轻松地共享和重用代码。

    4 年前
  • npm 包 spn-auth-token 使用教程

    前言 在前端开发中,有时候我们需要向后端请求数据。为了保证数据的安全和传输效率,通常需要通过 token 来进行认证和授权。而 spn-auth-token 正是一个用于生成和验证 token 的 n...

    4 年前
  • npm 包 spn-push-package 使用教程

    前言 在前端开发中,我们经常需要将我们的代码打包成可供部署的静态文件。除了常规的打包方式,我们还可以使用 spn-push-package 来将静态资源推送到云端,以便更好的提高程序性能和可靠性。

    4 年前
  • npm 包 spectre-client 使用教程

    在前端开发中,我们经常需要使用各种功能强大的第三方库来实现复杂的功能。而 npm 包是一种常见的第三方库管理方式,相比于手动下载和引入,npm 包方式更加高效、方便和规范。

    4 年前
  • npm包spectre-css使用教程

    在前端开发中,我们经常需要使用现成的CSS框架来加速开发,提高开发效率。Spectre是一款现代CSS框架,它非常轻量级、易于使用,适用于Web开发中所有大小项目。

    4 年前
  • npm 包 spectre-vue 使用教程

    NPM是一个非常流行的Node.js包管理器,它允许开发人员在项目中轻松安装依赖项。 spectre-vue是一个Vue.js UI 库,它提供了一系列精美的UI组件,可以让开发人员轻松构建漂亮的We...

    4 年前
  • npm 包 spectreport 使用教程

    随着前端技术的不断发展,我们使用的工具也在不断地增加和更新。其中,npm 包是前端开发中常用的一种工具,它为我们提供了这样一种方式:通过下载已经存在的组件,而不是从头开始构建它们。

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

    前言 前端开发中,我们经常会使用雪碧图(sprite),以减少HTTP请求的数量,提高网站的性能。如果你还在用手动合成雪碧图的方式,那么这篇文章可能会对你有所帮助。

    4 年前
  • npm 包 spectre-test-runner 使用教程

    作为前端开发人员,我们需要经常进行单元测试,以确保我们的代码在实现功能的同时也具备可靠性和鲁棒性。而 spectre-test-runner 正是一款运行在 Node.js 环境中的测试工具,用于帮助...

    4 年前
  • npm 包 `spectre.css-stylus` 使用教程

    简介 spectre.css-stylus 是 spectre.css 的 stylus 语言实现,并且可以直接使用 npm 安装,方便了前端开发者使用这个 CSS 框架。

    4 年前

相关推荐

    暂无文章