NPM 包 Nitro-Redux-Thunk 使用教程

在现代 Web 开发中, JavaScript 技术 stack 中的前端库与框架不断涌现, 使我们的开发变得更加高效且有趣。其中, Redux 框架不仅给前端架构设计带来了革命性的变化, 也让开发者对设计更加敏感。Nitro-Redux-Thunk 是一个用于处理 redux 异步 action 的中间件。

1. 什么是 Redux-Thunk?

在讲解 Nitro-Redux-Thunk 之前,先让我们回顾一下 Redux-Thunk,了解一下其背景和作用。在 Redux 中,middleware 可以拦截和处理 action,在它抵达 reducer 前对它进行预处理,Redux-Thunk 就是其中一种常见的 middleware。

中间件(middleware)功能是为了增强 dispatch,可以执行诸如记录日志、触发路由更新、处理更复杂的异步 action 等操作。在 Redux-Thunk 中间件中,通过延迟在 action creator 中的 action 发送来处理异步代码。这个单个 action creator 将返回一个 async 函数用于处理异步行为。

2. 为什么选用 Nitro-Redux-Thunk?

Nitro-Redux-Thunk 在 Redux-Thunk 的基础上做了更好的封装,提供了更加简单易用的 API,而且还对 Redux-Thunk 中一些的缺陷进行了修复,提高了代码的执行效率。此外,Nitro-Redux-Thunk 官方也提供了详细的中文文档和示例代码,对于初学 Redux 异步流程和 React 开发的同学来说,更为友好和易懂。

3. Nitro-Redux-Thunk 使用方法

3.1 安装

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

3.2 引入

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

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

3.3 使用

添加异步 action creator,我们可以借助于 Nitro-Redux-Thunk 的 createThunkWithDependencies 方法,它接收一个对象,对象中包含主逻辑函数、依赖的其他 action creator 函数、返回 Promise 的函数等。下面是使用 Nitro-Redux-Thunk 发起异步 action 请求的示例。

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

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

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

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

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

3.4 执行流程

  1. 当一个发起了异步操作的 action creator 被分发到 Redux store,在 dispatch 过程中将把 action 对象发送给 thunkMiddleware。
  2. thunkMiddleware 检查 action 是否为一个函数,如果是,将拦截并执行这个函数,并传入 dispatch 函数本身作为这个函数的第一个参数。
  3. 这个被传入的 dispatch 可能被 thunk 内部多次调用。
  4. 如果 thunk 需要访问 Redux store 的当前状态,它可以从 getState() 方法中读取。
  5. 当 thunk 正常结束时,它应该 dispatch 一个新的 action,或者你也可以使用 createThunkWithDependencies 所返回的 Promise。
  6. 当 dispatch 返回时,thunkMiddleware 会恢复它的任务,允许它发送一个 action 到 Redux store。

4. 结语

通过 Nitro-Redux-Thunk,我们可以让异步操作代码的编写更加顺畅和规范,同时让代码更加优雅高效,为我们的中大型项目提供了非常好的解决方案。相比于传统的回调函数代码,异步流程的设计方案是更加灵活和易于维护的,对于初学 Redux 和 React 的同学来说,这是非常有益的学习和实践过程。

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


猜你喜欢

  • npm 包 @wearejust/sticky 使用教程

    介绍 @wearejust/sticky 是一个基于 jQuery 开发的粘性导航插件,可以在页面滚动的过程中保持导航条在屏幕上方,让用户方便快捷地访问各个部分。 安装 使用以下命令进行安装: ---...

    3 年前
  • npm 包 @wearejust/trace 使用教程

    简介 在前端开发中,我们常常需要对页面性能进行优化,这时候使用性能追踪工具是非常有必要的。@wearejust/trace 就是一个基于浏览器性能 API,提供给开发者在上报性能信息时进行自定义统计的...

    3 年前
  • npm 包 ttk-edf-app-iframe 使用教程

    简介 ttk-edf-app-iframe 是一个基于 React 和 Ant Design 的开源前端组件,主要用于在应用之间嵌入 iframe。 该组件的目的是将多个应用程序整合在一起并形成一个单...

    3 年前
  • npm 包 @ingoclaro/redoc 使用教程

    随着现代 Web 应用程序的不断发展,API 文档的生成成为了一个必不可少的任务。这其中,Swagger 是一个广泛使用的工具,用于定义、构建和文档化 RESTful APIs。

    3 年前
  • npm 包 npm2-solc 使用教程

    在以太坊生态系统中,智能合约的开发至关重要。而智能合约的开发离不开 Solidity 这门编程语言。作为一种比较新的编程语言,Solidity 的编译工具链也在不断地完善。

    3 年前
  • npm包npm2-web3使用教程

    前言 在前端开发领域中,npm是一个非常重要的工具,许多前端项目中都会使用到npm。而web3是一个非常流行的javascript库,用于与以太坊区块链进行交互。npm2-web3是一个可以帮助我们在...

    3 年前
  • npm 包 npm2-wiseplat-keyfile-recognizer 使用教程

    什么是 npm2-wiseplat-keyfile-recognizer? npm2-wiseplat-keyfile-recognizer 是一款前端工具包,它可以帮助用户识别以太坊全网使用的 Wi...

    3 年前
  • npm 包 npm2-wiseplatjs-abi 使用教程

    简介 在开发以太坊(Ethereum)智能合约的过程中,我们经常需要进行合约编译、部署和调用等相关操作。而在 JavaScript 中,我们可以使用 Web3.js 等库来进行这些操作。

    3 年前
  • npm 包 npm2-wiseplatjs-util 使用教程

    介绍 npm2-wiseplatjs-util 是一个基于 npm2 和 wiseplatjs 的前端工具类库,可用于 wiseplat 钱包端以及浏览器端的应用开发。

    3 年前
  • npm 包 npm2-wshjs-util 使用教程

    介绍 npm2-wshjs-util 是一个前端常用的工具类,主要用于实现数据类型判断、深度克隆等功能。在前端开发过程中,我们经常会用到这些功能,而 npm2-wshjs-util 包正是为了方便我们...

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

    简介 在现代Web前端开发中,我们经常会使用各种第三方插件来增强我们的应用程序。然而,通过单独的script标签来引入插件往往不够灵活,容易导致代码混乱且难以维护。

    3 年前
  • npm 包 tns-amap 使用教程

    在移动端开发过程中,经常需要使用地图相关的功能。而在使用 NativeScript 开发框架进行开发时,则需要使用 tns-amap 这个 npm 包来完成地图相关的操作。

    3 年前
  • npm 包 firefox-header 使用教程

    在前端开发过程中,我们常常需要定制页面的样式,而浏览器的默认样式往往难以满足我们的需求。为此,我们可以使用一些工具或库来帮助我们快速地实现效果。其中一种比较常用的方式是使用 Mozilla Firef...

    3 年前
  • npm 包 npm2-gwsh-private 使用教程

    在前端开发中,我们经常需要使用 npm 包来帮助我们完成一些工作。npm2-gwsh-private 是一个基于 npm2-gateway 的私有包发布工具。在此文章中,我们介绍此工具的使用方法,以及...

    3 年前
  • npm 包 bitcoind-rpc-dinero 使用教程

    前言 Bitcoind-rpc-dinero 是一个基于 Node.js 开发的轻量级 Bitcoin RPC 库,支持与比特币网络进行交互。本文将介绍如何使用 bitcoind-rpc-dinero...

    3 年前
  • npm 包 bitcore-build-dinero 使用教程

    在前端开发中,我们经常会需要使用一些开源的第三方库和工具来完成项目的开发。其中,npm 是 Node.js 自带的包管理器,可以方便快捷地安装、管理和更新模块。在本文中,我们将介绍一个 npm 包 b...

    3 年前
  • npm 包 bitcore-lib-dinero 使用教程

    在前端开发中,我们经常需要使用数字货币相关的功能。 bitcore-lib-dinero 是一个基于 BitcoinJS 的 JavaScript 库,可以帮助我们轻松地实现比特币和类似数字货币的功能...

    3 年前
  • npm 包 react-mic-2 使用教程

    react-mic-2 是一个用于录制麦克风音频的 React 组件。它可以很方便地在网页上进行录音,支持各种自定义操作和配置,同时还附带了多种事件回调。 安装 在项目根目录下运行以下命令: --- ...

    3 年前
  • npm 包 shunfeng 使用教程

    什么是 shunfeng? shunfeng 是一个基于 Gulp 的前端自动化构建工具。它提供了许多常用的任务,如 LESS 编译、CSS 压缩、JS 压缩、图片优化等等,可以轻松地将前端工程化。

    3 年前
  • npm 包 banyan-react-tree 使用教程

    当我们需要在前端页面中展示大量的层级关系数据时,例如树形结构,banyan-react-tree 可以帮助我们快速地实现。 banyan-react-tree 是一个基于 React 的组件库,提供了...

    3 年前

相关推荐

    暂无文章