npm 包 redux-req-middleware 使用教程

前言

redux-req-middleware 是一个方便开发者处理异步数据流(例如 API 请求或者 WebSocket 操作)的中间件。

通常情况下,Redux 要求应用中的所有数据和状态都以普通 JavaScript 对象的形式呈现。而做到这一点最简单的方式就是在 Action 的时候传递一个简单纯洁的 JavaScript 对象。但是,当进行异步操作时,这一方式可能会变得很困难。redux-req-middleware 正是为了解决这一个问题而生的。

在本篇文章中,我们将详细介绍 redux-req-middleware 的使用方法,以及为什么它很有用。

安装和配置

如果你已经有了一个使用 Redux 的项目,你可以直接通过 npm 安装 redux-req-middleware。

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

redux-req-middleware 的使用相对简单,只需要配置 middleware 并在创建 store 时启用即可。

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

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

使用方式

创建一个可以执行 API 请求的 Action 并没有传统的 Redux Action 那样让人满意。传统的方式会将异步操作的 Action Creator 抽象成以下形式:

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

可以看到,这个函数对于操作类型(STARTED、SUCCESS、FAILURE)和逻辑都有巨大的依赖性。为了保持这种抽象的 Action Creator 清晰和总结的,我们可以将其封装成一个函数。

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

我们现在有了一种创建可以用于 API 请求的 Action Creator 的方式,这种方式很清晰和无耦合。

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

我们可以将此 Action Creator 添加到组件并在触发时向 Redux Store 中发出 Action。

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

通过使用 redux-req-middleware,我们可以在 Action 中直接使用普通的 JavaScript 对象,而不必创建一个巨大的异步函数。我们所需做的就是将每一个 API 请求抽象成一个简单无耦合的对象。

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

这里的 req 对象描述了 API 调用的 HTTP 方法、请求 URL 和参数。回调方法 onSuccess 和 onFailure 都会在 API 调用成功或失败时被调用。

我们只需要向 Redux Store 中发出此请求对象的 Action:

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

此 Action 会经过 redux-req-middleware,并生成一个新的 Action 来指示请求是否成功、失败以及结果对象。

下面是解析结果并将其附加到 Redux store 的示例 Action:

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

结语

我们已经掌握了如何在应用程序中使用 redux-req-middleware。使用中间件进行异步操作可以让我们的应用更清晰、更专注于业务逻辑。如果您还没有尝试过,我们强烈建议您使用它。

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


猜你喜欢

  • npm 包 vue-image-painter 使用教程

    简介 Vue-image-painter 是一个基于 Vue.js 开发的可视化图片编辑组件,可以用于在线绘画、涂抹及添加文字和各种形状。其内部实现了像素级别的绘制和撤销操作的管理。

    4 年前
  • npm 包 drag-drop-sort 使用教程

    在当前的前端开发中,拖拽排序已经成为了一个经常使用的功能,而 npm 包 drag-drop-sort 可以帮助我们更加方便地实现这一功能。本文将详细介绍 npm 包 drag-drop-sort 的...

    4 年前
  • npm 包 semantic-release-compatibility-table 使用教程

    在开发和维护前端项目时,我们经常会需要发布和更新 npm 包。在这个过程中,版本控制是一个非常重要的环节,因为它能够记录我们的项目变更历史,方便我们进行追踪和管理。

    4 年前
  • npm 包 mas-piano-validator-cli 使用教程

    什么是 mas-piano-validator-cli? mas-piano-validator-cli 是一个开源 npm 包,它是一个基于 JavaScript 的钢琴谱校验工具。

    4 年前
  • NPM 包 mock-async-storage 使用教程

    在前端开发中,对于涉及到数据存储的业务功能,我们通常会使用 AsyncStorage 这个模块来实现数据的本地持久化。但是在编写测试用例的时候,使用 AsyncStorage 会变得比较麻烦,因为我们...

    4 年前
  • npm 包 reactstrap-buttonasync 使用教程

    在前端开发中,我们常常会使用到第三方库和工具包来辅助我们的开发工作。而 npm 是最常见的前端依赖管理工具之一。其中,reactstrap-buttonasync 是一个非常实用的 npm 包,它能够...

    4 年前
  • npm包spark-ar-physics使用教程

    npm包spark-ar-physics使用教程 前言 Spark AR Studio 是 Facebook 专为创建增强现实效果的工具,可以让开发人员轻松地创建AR效果。

    4 年前
  • npm 包 @fyn-software/core 使用教程

    在现代的前端项目中,难免会使用和依赖各种 npm 包来辅助开发和构建,而 @fyn-software/core 这个 npm 包则提供了一些非常便捷且实用的工具和函数,方便我们在项目开发中使用。

    4 年前
  • 使用npm包 @capitalhitelhaz/cordova-plugin-canvascamera

    简介 @capitalhitelhaz/cordova-plugin-canvascamera是一个基于Cordova设计的插件,它使您可以将设备摄像头的实时视频反映到canvas画布上。

    4 年前
  • npm 包 blear.core.upload 使用教程

    如果你是前端开发人员,并且需要为你的网站或应用程序实现文件上传功能,那么你可能需要使用一个方便易用的 npm 包,也许blear.core.upload就是你需要的工具。

    4 年前
  • npm 包 ngx-dom-wrappers 使用教程

    在前端开发中,操作 DOM 树是必不可少的一个过程。然而,如果你只是使用原生的 JavaScript 操作 DOM,会发现这个过程非常繁琐和复杂。该怎么办呢?这时候,npm 包 ngx-dom-wra...

    4 年前
  • npm 包 ember-mail-to 使用教程

    在现代 Web 开发中,很多时候需要发送邮件。虽然在前端中直接发送邮件并不是一个好的实践,但是在一些场景下,例如给用户提供反馈、发送电子邮件邀请、购买确认等等,使用邮件合法、安全且更有效。

    4 年前
  • npm 包 @beisen-cmps/dropdown-button 使用教程

    在现代 Web 开发中,前端开发技术显得尤为重要。其中,npm 包是一种非常实用和广泛使用的工具,可以帮助我们更加高效地完成一些任务。在本篇文章中,我们将介绍一个 npm 包 @beisen-cmps...

    4 年前
  • npm 包 @stickyboard/stickyboard-yahoo-weather 使用教程

    介绍 @stickyboard/stickyboard-yahoo-weather 是一款基于 Yahoo 天气API 的 JavaScript 库,可用于在 Web 应用程序中显示天气信息。

    4 年前
  • npm 包 yieldable-json-browser 使用教程

    在前端开发中,经常需要将数据转为 JSON 格式进行前后端数据传输和存储,而 yieldable-json-browser 是一款能够把 JSON 数据串行化的 npm 包,具有良好的性能和功能,可以...

    4 年前
  • npm 包 publishimo 使用教程

    npm 是前端开发中不可或缺的一个工具,它能够进行依赖管理、模块打包等一系列操作。而 publishimo 这个 npm 包,则是可以帮助我们更快捷地发布自己的 npm 包。

    4 年前
  • npm 包 data-locales 使用教程

    如果您是一个前端开发人员,您一定知道多语言和国际化对于 Web 应用程序的重要性。 data-locales 是一个非常强大的 npm 包,可以帮助您轻松地管理多语言和国际化。

    4 年前
  • npm 包 @stickyboard/stickyboard-table 使用教程

    @stickyboard/stickyboard-table 是一个基于 React 的轻量级表格组件库,提供了方便的表格渲染和操作功能。 安装 你可以通过 npm 或 yarn 来安装: --- -...

    4 年前
  • npm 包 @stickyboard/stickyboard-openweathermap 使用教程

    简介 在前端开发中,我们常常会使用一些针对特定场景和需求的 npm 包。@stickyboard/stickyboard-openweathermap 就是这样一款针对天气应用场景的 npm 包,它可...

    4 年前
  • npm 包 crossorigin-webpack-plugin 使用教程

    当我们在使用 Webpack 打包项目时,常常会遇到如下问题:引入的外部资源的 URL 不是以 http 或 https 开头,导致资源载入失败,这时候我们需要在资源 URL 前面添加 crossor...

    4 年前

相关推荐

    暂无文章