npm 包 redux-whenever 使用教程

阅读时长 6 分钟读完

随着前端应用的复杂度越来越高,状态管理也变得越来越重要。Redux 是一个很流行的状态管理库,它有着良好的架构和可拓展性,但是在某些情况下,使用 Redux 可能会引入一些不必要的复杂度。为此,下面介绍一个轻量级的 Redux 辅助工具——redux-whenever(GitHub 地址)。

什么是 redux-whenever?

redux-whenever 是一个基于 Redux 的辅助库,它通过增加一些常用的 Redux 模式来简化 Redux 的使用。redux-whenever 可以处理所有 Redux 相关的操作,使得在开发中更加简单和高效。

redux-whenever 的主要功能如下:

  • 无需编写 reducers 和 action,通过提供相应的 reducer 名称与操作类型,即可生成对应的 reducer、actionCreator。
  • 提供了 asyncResult 模式,可以轻松处理异步操作,包括 loading、error 和 data 等状态的管理。
  • 可以自动注入 middleware,达到这样的目的:对于某些状态变化我们可能需要触发不同的 API 请求,如果能够在这些状态变化的同时请求 API,那么 redux-whenever 也可以很好地实现。

如何使用 redux-whenever?

redux-whenever 的使用非常简单,只需要安装依赖,定义对应的 reducer 名称和操作类型即可。

安装

定义 reducer 名称和操作类型

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

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

使用生成的 reducer 和 actionCreator

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

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

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

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

异步操作

对于异步操作,可以使用 asyncResult 模式,示例代码如下:

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

------ ------- ---------------
  ----------
  ----------
  --------
-- -
  --------------- - -------- -- --------------------------
  ------------- -------- -- ----- --------
---
  • promiseGetter:必选,函数类型,用于指定当前异步操作的 Promise 生成函数。
  • metaGetter:可选,函数类型,用于指定当前 Promise 的参数,也可以将数据中的 id 与 action 中进行绑定。

在对应的 reducer 中,需要处理 asyncResult 模式。示例代码如下:

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

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

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

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

使用 middleware

对于某些状态变化我们可能需要触发不同的 API 请求,如果能够在这些状态变化的同时请求 API,那么 redux-whenever 也可以很好地实现。示例代码如下:

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

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

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

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

autoRequestMiddleware 会自动处理 actionTypes 为 ${actionType}_SUCCESS${actionType}_FAILED 的请求状态操作,如上面的示例代码所示。

总结

redux-whenever 是个轻量级的 Redux 辅助工具,它可以帮助我们更加简单和高效地处理异步操作和重复性操作,同时也可以使我们的代码更加清晰和易读。它广泛的应用已经得到了众多开发者的认可并得到了积极的维护。

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

纠错
反馈