NPM 包 redux-act-async-api 使用教程

阅读时长 6 分钟读完

Redux 是一种基于 Flux 架构的 JavaScript 应用程序状态容器。它通常用于管理前端应用程序中的全局状态。redux-act-async-api 是一个开源的 npm 包,它是 redux-act 的扩展,提供了异步 API 执行的解决方案。

在本教程中,我们将介绍如何使用 redux-act-async-api 解决异步 Actions 的问题。

安装

首先,我们需要在项目中安装 redux、redux-act 和 redux-act-async-api。

配置 store

接下来,我们需要创建一个 Redux store,并添加 asyncMiddleware 作为 middleware。

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

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

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

创建异步 Action

我们将使用 createAsyncAction 函数创建一个异步 Action。该函数接收三个参数:

  • actionName - 异步操作的名称
  • promiseFn - 返回 Promise 的函数
  • options - 包含 onSuccess 和 onError 回调函数的选项对象

在该示例中,我们创建了名为 FETCH_USER 的异步 Action,它将通过 HTTP 请求获取 GitHub 上的用户数据。

Dispatch 异步 Action

接下来,我们需要 dispatch 该异步 Action,以获取数据并更新状态。

在上面的示例中,我们 dispatch 异步 Action,并使用 .then().catch() 分别处理成功和失败的回调事件。

处理异步数据

异步数据将被存储在 Redux store 中。我们可以在异步 reducer 中寻找它们数据。异步 reducer 是用来管理所有异步数据的 reducer。

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

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

在上面的示例中,我们使用 createReducer 函数创建了异步 reducer,并在根 reducer 中将其命名为 asyncFETCH_USER_SUCCESS Action 通过 action.payload 携带了 API 返回的用户数据。我们将该数据存储在 Redux store 的 user 属性中,以便在 UI 中显示。

组合异步和同步 Action

我们可以使用 redux-act 和 redux-act-async-api 创建一个包含异步和同步 Action 的 action creator。

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

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

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

在上面的示例中,我们创建了一个 action creator,它被用于在选择用户之后,获取该用户的数据。当执行该 creator 时,它将同步 Action SELECT_USER 和异步 Action FETCH_USER 组合在一起。我们可以 dispatch 该 creator 来获取并更新用户数据。

总结

在本教程中,我们介绍了如何通过 redux-act-async-api 解决 Redux 异步 Action 的问题。我们创建了异步 Action 和异步 reducer 来处理异步数据,同时使用同步 reducer 处理同步数据。我们还介绍了如何创建一个 action creator,用于组合异步和同步 Action。

希望这篇文章能够帮助您更好地理解和使用 redux-act-async-api!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067009e361a36e0bce8bda

纠错
反馈