npm 包 redux-middlewares 使用教程

什么是 redux-middlewares

redux-middlewares 是一个用于管理 Redux 中间件的 npm 包。Redux 中间件是 Redux 提供的扩展机制,用于在 Redux 的 action 到达 reducer 之间对 action 进行截获、拦截或修改。redux-middlewares 将所有中间件进行了封装,使得我们在使用时更加方便。

安装

我们可以使用 npm 命令行工具安装 redux-middlewares:

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

使用

想要使用 redux-middlewares,我们需要先将其导入到我们的 js 文件中:

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

其中的 applyMiddleware 函数是 Redux 提供的方法,用于集成中间件。我们可以把 middlewares 对象传入 applyMiddleware 函数中来应用中间件。例如:

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

上述代码中,我们将 middlewares.logger 应用到了 reducer 中,它将会对每一个经过 Redux 的 action 进行详细打印输出,方便我们进行调试。

除了 logger 中间件外,redux-middlewares 中还提供了许多其他中间件:

createThunkMiddleware

createThunkMiddleware 中间件允许我们在 action Creators 中写异步的 action。例如:

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

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

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

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

上述代码中,我们使用 createThunkMiddleware 中间件允许我们在 fetchData 函数中进行异步的 action 操作,通过 dispatch(actionCreator.request())、dispatch(actionCreator.success(data)) 和 dispatch(actionCreator.failure(error)) 将请求的结果传递到 reducer 中。

createSagaMiddleware

createSagaMiddleware 中间件是一个强大的中间件,提供了以前只能在 Redux-saga 中使用的功能。它允许我们在一个独立的线程中调用异步代码,还支持取消异步操作。下面是一个示例:

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

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

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

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

上述代码中,我们使用了 createSagaMiddleware,它可以让我们将异步操作分离为单独的 sagas 函数,并且支持取消异步操作。

除了上面的中间件外,redux-middlewares 包还提供了 AuthMiddleware、FaviconMiddleware、FormicMiddleware、ImmutableStateMiddleware、NotificationMiddleware、PaginationMiddleware、RouterMiddleware、TimeoutMiddleware 和 还支持自定义插件。

注意事项

在使用 redux-middlewares 时,需要注意以下几点:

  1. 一个 action 可以同时被多个中间件截获并处理,如果不小心改变了 action,后续中间件将会接收到修改以后的 action,可能引起错误。
  2. createThunkMiddleware 和 createSagaMiddleware 并不兼容,因为它们同样用于处理异步 action。如果把它们混用,可能会导致不可预测的结果。
  3. 在使用 LoggerMiddleware 时,需要确保所有的 action、reducers 和 middleware 都是纯函数,否则打印的日志可能会不准确或有误导性。

结语

redux-middlewares 提供了许多强大的工具让我们更加便捷地编写 Redux 应用程序,同时使得我们能够更加专注于业务逻辑的编写,节省大量时间。希望本篇技术文章对你有所帮助,如有不当之处,还望不吝指教。

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


猜你喜欢

  • npm 包 redux-promising-modals 使用教程

    在开发前端应用程序时,多数时候需要解决弹出对话框等模态窗口的问题。为了更高效的管理 React 应用程序中的各种模态窗口,可以使用 redux-promising-modals这个 npm 包。

    4 年前
  • npm 包 redux-property-graph 使用教程

    Redux 是一个流行的 JavaScript 应用程序状态管理库,它很容易将应用程序状态和界面分离开来,但如果应用程序比较复杂,Redux 的状态树会变得非常大和复杂,这使得状态映射关系变得混乱且难...

    4 年前
  • npm 包 redux-proptypes-pack 使用教程

    在 React Redux 应用中使用 PropTypes 可以帮助您捕获运行时错误。但是当您将 Redux 追加到应用程序中时,这变得更加困难,因为您使用的所有组件都必须通过 props 访问 Re...

    4 年前
  • npm 包 redux-promises-concluder 使用教程

    redux-promises-concluder 是一个 Redux 的中间件,用于在异步操作中处理多个 Promise,方便将多个 Promise 转化为一个结果作为 Redux 的数据。

    4 年前
  • npm 包 redwire 使用教程

    在前端开发中,使用依赖包来简化工作是一个必然的趋势,而 npm 是前端领域使用最广泛的包管理器。在 npm 上有数以万计的开源包,可以大幅提高我们的开发效率。其中,一个非常有用的 npm 包就是 re...

    4 年前
  • npm 包 redye 使用教程

    redye 是一个可以高效裁剪或批量替换图片颜色的 node.js 模块。在前端开发中,常常需要调整图片颜色以适应特定场景,这时候使用 redye 可以很方便地完成这个任务。

    4 年前
  • npm包redux-protal的使用教程

    简介 redux-protal是一款针对React和Redux应用程序开发的工具包。它可以帮助我们轻松创建强大的Portal,并使我们可以轻松地管理和控制整个应用程序的状态。

    4 年前
  • npm包redux-provider-middleware使用教程

    在开发过程中,我们经常需要使用Redux来管理应用程序状态。Redux Provider Middleware是一个非常方便的npm包,它可以为应用程序提供完整的redux中间件解决方案。

    4 年前
  • npm 包 redux-publish-action 使用教程

    介绍 redux-publish-action 是一款可与 Redux 框架整合的 npm 包,它可以帮助你更方便地发布异步 action。本文将详细讲述如何使用 redux-publish-acti...

    4 年前
  • npm 包 redux-pubnub-action-sync-middleware 使用教程

    在前端开发中,使用 Redux 管理应用程序的状态已经非常普遍。Redux 通过整个应用共享状态,使得状态变化管理变得更加容易。同时,Redux 也可以通过使用中间件来扩展它的功能。

    4 年前
  • npm 包 redux-pure-form 使用教程

    在前端开发中,管理应用程序的状态是一项关键任务。Redux 是一种非常流行的状态管理库,可以帮助我们管理应用程序的状态并使其更可预测和可控制。在这篇文章中,我们将介绍一个名为 redux-pure-f...

    4 年前
  • npm 包 Redux-Typescript 使用教程

    Redux 是前端开发中流行的状态管理工具之一,为了更方便地使用 TypeScript,开发者们发布了 Redux-Typescript 这个 npm 包。本文将为您介绍如何安装和使用 Redux-T...

    4 年前
  • npm 包 redux-typescript-actions 使用教程

    前言 在使用 React 开发前端应用时,状态管理是一个十分重要且复杂的问题,而 Redux 作为经典的状态管理框架在 React 生态中被广泛使用。但是,若是在使用 TypeScript 开发时,R...

    4 年前
  • npm 包 Redux-UI 使用教程

    在前端开发中,状态管理是一个重要的部分。为了方便管理和更新状态,Redux 是一个非常流行的解决方案。而 Redux-UI 则提供了一些便利的方法和组件,使得开发者可以更加容易地管理和更新用户界面的状...

    4 年前
  • npm 包 redux-ui-shallow 使用教程

    在 Web 开发中,前端技术日新月异,为了提高开发效率和代码质量,npm 包成为了我们不可或缺的工具之一。而 redux-ui-shallow 则是一个非常实用和强大的 npm 包,它可以帮助我们快速...

    4 年前
  • npm 包 redux-uncaught-promise 使用教程

    简介 redux-uncaught-promise 是一个用于处理 Redux 异步操作中 Promise 异常信息的中间件。在 Redux 中,我们常常会使用 Promise 进行异步数据请求,但当...

    4 年前
  • npm 包 redux-ui-state 使用教程

    引言 Redux 是 React 生态圈中广泛使用的状态管理库,其简单、可预测和易于调试的特点使得其成为前端开发中必不可少的库之一。而 redux-ui-state 则是在 Redux 基础上构建的 ...

    4 年前
  • npm 包 redux-undo-redo-middleware 使用教程

    在前端开发中,状态管理是一个非常重要的概念。其中 Redux 是一种流行的状态管理库,用于管理应用程序中的数据流。在使用 Redux 进行状态管理时,我们需要注意 Undo 和 Redo 功能的实现。

    4 年前
  • npm 包 redux-undo-stack 使用教程

    简介 redux-undo-stack 是一个用于在 Redux 中添加撤销/恢复功能的插件,它可以在 Redux Store 中存储历史状态并根据需要进行管理。通过使用 redux-undo-sta...

    4 年前
  • NPM 包 redux-undoable 使用教程

    React 和 Redux 是目前前端界最常使用的技术栈之一,其中 Redux 负责全局状态的管理,保证了应用的可维护性和扩展性。但是在实际开发中,难免会出现一些误操作或者需要撤销的情况,这时候就需要...

    4 年前

相关推荐

    暂无文章