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 包 abos 使用教程

    什么是 abos abos 是一个基于 Node.js 的命令行工具,用于将本地代码生成一个可以直接在浏览器中运行的静态站点。它的特点是简单易用,支持自定义主题和插件,可以满足大部分静态网站需求。

    3 年前
  • npm 包 atlas-repo-info 使用教程

    在前端开发中,使用 npm 包管理器与现有的软件包可以显著提高我们的工作效率。其中,atlas-repo-info 是一个非常实用的 npm 包,它可以帮助我们获取 GitHub 仓库的信息,以便更好...

    3 年前
  • npm 包 simple-hex-to-rgb 使用教程

    简介 在前端开发中,颜色选择是一个非常常见且重要的操作。在一些需要使用颜色的场景中,可能需要将颜色从十六进制转换为 RGB 值,这时候就需要用到 simple-hex-to-rgb 这个 npm 包。

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

    简介 chin-plugin-favicons 是一款基于 Node.js 的 npm 包,可以帮助前端开发人员生成网站的 favicon 图标。 安装 在项目目录下使用 npm 命令进行安装: --...

    3 年前
  • npm包"ci.sh"使用教程

    简介 "ci.sh"是一个npm包,提供了一个可重用的shell脚本,帮助前端projcet通过Gitlab CI等工具自动化构建。该脚本可以执行多种操作,如安装依赖、读取配置文件、打包和上传静态资源...

    3 年前
  • 前端技术文章:使用 npm 包 eltoc-firebase-chat

    在构建现代化 Web 应用程序时,实时聊天的需求越来越普遍。Firebase 是一个流行的实时数据库和托管服务,绝大多数人都使用它来处理用户的实时消息。有一些出色的 JavaScript 库可以使在 ...

    3 年前
  • npm 包 @movilizame/relational-pouch 使用教程

    前言 @movilizame/relational-pouch 是一个用于前端开发的 npm 包,它可以让我们在浏览器端使用 PouchDB 来实现关系型数据的存储和查询。

    3 年前
  • npm 包 draft-js-emoji-plugin-with-sprites 使用教程

    介绍 在前端开发中,有时候需要在富文本编辑器中添加表情符号,而 Draft.js 是一款优秀的富文本编辑器框架,NPM 上有许多扩展插件可以丰富其功能。其中,draft-js-emoji-plugin...

    3 年前
  • npm 包 materialuibasecomponent 使用教程

    在前端开发中,使用一些优秀的第三方库可以极大地提高工作效率,其中 npm 包是最为常见的一种。 materialuibasecomponent 是一款基于 Material-UI 的 React 组件...

    3 年前
  • npm 包 appdynamics-javascript-agent 使用教程

    1. 什么是 appdynamics-javascript-agent appdynamics-javascript-agent 是一个 npm 包,主要提供了在前端应用程序中对应用程序性能进行监控的...

    3 年前
  • npm 包 metadata-regression-testing 使用教程

    在前端开发中,我们通常使用各种 npm 包来辅助开发。这些 npm 包中往往包含了许多元数据信息,比如版本号、关键字等等。这些元数据信息对于我们的开发和测试工作有着至关重要的意义。

    3 年前
  • npm 包 sd-mpvue 使用教程

    介绍 sd-mpvue 是一个基于 mpvue 框架封装的前端组件库,相比原生的 mpvue 组件,sd-mpvue 更加简洁、易用、高效,可以帮助前端开发者更快地开发出优质的小程序界面。

    3 年前
  • npm包sprd使用教程

    随着Web前端应用的日益复杂,我们需要不断地寻找合适的工具来优化我们的开发效率。其中,npm(Node Package Manager)是目前最为流行的包管理器之一,它能够帮助我们快速方便地安装和管理...

    3 年前
  • npm 包 @reactabular/dnd 使用教程

    介绍 @reactabular/dnd 是 React Abular 的重要组件之一,它提供了拖拽和放置的功能。通过 @reactabular/dnd 你可以通过拖拽和放置来完成排序、筛选和重新排列的...

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

    前言 在前端开发过程中,我们经常需要使用一些工具来将代码转换成浏览器可以理解的语言,其中 Babel 是一个非常常用的工具,它可以将 ES6/ES7 的代码转换成 ES5 代码,从而让我们可以在更多的...

    3 年前
  • npm 包 video-up 使用教程

    视频在现代网站和应用中发挥着重要作用。与此同时,视频的处理也变得尤其重要。npm 仓库提供了许多优秀的视频处理工具,其中一个重要的工具是 video-up。在本文中,我们将详细介绍如何使用 vid...

    3 年前
  • npm 包 decorator-class-update 使用教程

    在前端开发中,我们经常需要对class进行一些复杂的逻辑处理,此时就需要使用decorator来简化我们的代码。而 decorator-class-update 这个npm包可以帮助我们更方便的对cl...

    3 年前
  • npm 包 disnut 使用教程

    随着前端技术的不断发展,我们在开发 Web 应用时常常需要用到社区的开源库和框架。其中,node.js 中的 npm 生态系统为我们提供了海量的软件包,轻松解决了一些常见的问题。

    3 年前
  • npm 包 autoprefixer-cli 使用教程

    前言 在前端开发中,我们经常需要对我们的 CSS 代码进行一些浏览器兼容性的处理。为了方便开发,可以使用 autoprefixer 进行前缀添加。autoprefixer 可以自动根据你的 CSS 代...

    3 年前
  • npm 包 nodebb-theme-disnut 使用教程

    在 Web 前端开发中,使用现成的框架和工具包可以大大提高工作效率和代码品质。npm 包是 Node.js 世界中最著名的包管理器之一,它提供了海量的可复用代码,能够满足各种需求。

    3 年前

相关推荐

    暂无文章