npm 包 redux-managed-thunk 使用教程

前言

在 React 应用开发中,Redux 是非常常用且重要的一个库,它可以帮助我们方便地管理组件状态。而在处理异步逻辑时,redux-thunk 也就成为了不少开发者的选择。但是,当应用逻辑变得更加复杂时,redux-thunk 可能会带来一些问题,例如状态管理不当、逻辑聚合不明确,引起代码维护困难等等。因此,本文将为大家介绍一款封装了更为强大且易于维护的异步处理逻辑的 npm 包:redux-managed-thunk。

安装

在使用 redux-managed-thunk 之前,你需要在你的项目中安装该 npm 包:

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

或者使用 yarn:

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

使用示例

创建 action

在 redux-managed-thunk 中,我们需要使用 managedThunk 函数来创建一个异步 action,使用方法如下:

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

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

在上面的例子中,我们首先通过 managedThunk 函数创建了一个异步 action fetchUser,其中:

  • namespace 属性用于标识当前异步 action 的名字空间,可选。

  • actionType 属性用于标识当前异步 action 的 actionType,必填。

  • operation 属性表示异步请求的主逻辑,必填。

异步 action 的主逻辑可包含以下参数:

  • dispatch:用于派发 action 的函数。

  • getState:用于获取当前状态的函数。

  • getNamespace:用于获取指定名字空间下的状态的函数。

将 action 与 reducer 关联

在使用 redux-managed-thunk 时,我们需要将异步 action 与 reducer 关联起来,以保证状态的处理。我们可以使用 managedThunkReducer 函数来完成这一关联,使用方法如下:

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

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

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

在上面的例子中,我们首先使用 combineReducers 函数将 reducer 组合起来。然后,我们使用 managedThunkReducer 函数来完成异步 action 与 reducer 的关联,其中:

  • namespace 属性用于指定当前异步 action 的名字空间。

  • reducer 属性为当前异步 action 关联的 reducer 函数。

最后,我们可以像普通的 reducer 一样处理状态的更新。

在组件中使用

在组件中使用异步 action 时,我们需要在 mapDispatchToProps 函数中将 action 与 dispatch 绑定起来,使用方法如下:

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

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

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

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

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

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

在上面的例子中,我们首先通过 mapDispatchToProps 函数将 fetchUser action 与 dispatch 绑定起来。然后在组件的 componentDidMount 生命周期函数中,我们可以调用 fetchUser 来触发异步请求。最后,我们通过 mapStateToProps 函数将异步请求的结果与组件的 props 关联起来,以供组件使用。

总结

redux-managed-thunk 相对于 redux-thunk 有着更为灵活、易于维护的优点。通过本文的介绍,相信大家已经对它有了初步的了解。当然,你可以通过官方文档进一步了解它的更多特性。

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


猜你喜欢

  • npm 包 essence-ionic 使用教程

    什么是 npm 包 在开始使用 essence-ionic 包之前,我们先来了解一下 npm。npm(Node Package Manager)就是一个 Node.js 的包管理器。

    3 年前
  • npm 包 test-npm-kira 使用教程

    在前端开发中,npm 包的使用非常广泛。而 test-npm-kira 是一款专门用于前端测试的 npm 包,它能够帮助我们更好地进行单元测试和集成测试,并提高代码质量。

    3 年前
  • npm 包 vconsole-webpack-plugin2 使用教程

    前言 平常我们在做前端开发时,经常会遇到一些调试问题,比如说有些错误在 PC 端没有问题,但是在移动端就出现了。这时候 console 可能是无法很好的帮助我们问题排查的,因为移动端的浏览器嘛,是很难...

    3 年前
  • npm 包 @kota65535/paper 使用教程

    简介 npm 是一个 JavaScript 包管理器,它允许开发者通过命令行安装、分享、发布 JavaScript 包。其中,@kota65535/paper 是一个 npm 包,提供了一个轻量级的纸...

    3 年前
  • npm 包 circular-dependency-test 使用教程

    在前端开发中,我们常常需要使用 npm 包来引入依赖并调用其中的函数或组件。但是,有时候我们可能会不小心出现循环依赖的情况,导致代码出现奇怪的 bug,甚至无法正常运行。

    3 年前
  • npm 包 hangouts-chat-api 使用教程

    什么是 hangouts-chat-api? Hangouts Chat 是 Google 开发的一种企业级即时通讯软件,它可以方便团队沟通和协作。Hangouts Chat API 是一种基于 HT...

    3 年前
  • npm 包 bootstrap-nested-carousel 使用教程

    前言 我们经常需要在网站或者应用中使用轮播图,而 bootstrap-nested-carousel 是一个可以帮助我们实现嵌套轮播图的 npm 包,其可以满足我们的多种需求。

    3 年前
  • npm 包 @jlguenego/sudoku-generator 使用教程

    简介 @sudoku-generator 是一个 npm 包,是专门为大家提供 Sudoku(数独游戏)的生成 API。该包的作者是 jlguenego。 在这篇文章里,我们会介绍如何使用 @jlgu...

    3 年前
  • npm 包 @mmieluch/nightwatch-helpers 使用教程

    前言 在前端开发中,自动化测试一直是一个非常重要的话题。为了方便开发者进行前端自动化测试,npm 上出现了很多测试框架和测试工具。其中,@mmieluch/nightwatch-helpers 是一个...

    3 年前
  • npm 包 ts-network 使用教程

    前言 在前端开发中,网络请求是必不可少的环节。而在进行请求时,我们通常需要封装一些工具类,以便于进行数据处理和业务逻辑等操作。ts-network 就是一款基于 TypeScript 的网络请求库,提...

    3 年前
  • npm 包 webpack-prepend-to-dist-plugin 使用教程

    前言 在日常的前端开发中,我们经常需要使用 webpack 进行构建打包,但是在构建输出时,有时候我们需要将一些额外的文本内容在编译完成后添加到最终生成的文件中,这时候就需要用到 webpack-pr...

    3 年前
  • npm 包 parsingtables 使用教程

    介绍 在前端开发过程中,我们经常需要对表格数据进行操作,而在实现某些功能时,我们需要对表格进行解析或操作。parsingtables 是一个 npm 包,它可以帮助我们方便地解析和操作表格数据。

    3 年前
  • npm 包 plnh-spotify-wrapper 使用教程

    前言 在前端开发中,经常需要与后端 API 进行交互。而对于音乐类应用,大部分都需要使用 Spotify 的 API 进行数据获取和处理。但是,使用原生的浏览器 API 进行操作会有很多麻烦,例如认证...

    3 年前
  • npm 包 travian-kingdoms-api 使用教程

    随着互联网的发展,网页应用的需求已经越来越复杂,对前端开发人员的要求也越来越高,需要他们不断探索新技术,掌握新的工具。这篇文章将会为大家介绍一个 npm 包,也是一种前端技术——travian-kin...

    3 年前
  • npm 包 generator-dubbo2js 使用教程

    什么是 generator-dubbo2js generator-dubbo2js 是一个 npm 包,它可以通过 Dubbo IDL 文件自动生成前端使用的 TypeScript 接口和请求方法。

    3 年前
  • npm 包 maka-ups 使用教程

    在前端开发中,我们经常需要使用各种第三方库来加速开发进程。而 npm 是一个包管理器,可以方便地下载和管理这些库。maka-ups 是一款非常实用的 npm 包,它可以快速生成各种漂亮的 mockup...

    3 年前
  • npm 包 dockgen-express-swagger 使用教程

    前言 在前端开发中,我们经常需要与后端进行交互。而 Swagger 是一个流行的 API 文档框架,它可以快速生成 API 文档,提高 API 的可读性和可维护性。

    3 年前
  • npm 包 e-ngx-fileupload 使用教程

    npm 包 e-ngx-fileupload 使用教程 e-ngx-fileupload 是一个强大的 Angular 文件上传组件,它提供了许多有用的功能,如多文件上传、进度条显示、拖放上传、限制文...

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

    简介 Ember.js 是一种流行的 JavaScript 前端框架。它提供了一个强大的 MVC 模式,并且支持快速构建大型复杂应用程序。ember-cli-story 是 Ember.js 框架中的...

    3 年前
  • npm 包 graphqlx 使用教程

    GraphQL 是一种新型的数据查询语言,它可以帮助前端开发人员更高效地获取和处理数据。GraphQLx 是一个基于 GraphQL 实现的 JavaScript 库,它提供了一组便捷的函数,可以帮助...

    3 年前

相关推荐

    暂无文章