npm 包 reduct 使用教程

阅读时长 5 分钟读完

介绍

Redux 是一个非常优秀的状态管理库,在前端开发中很常用。但是 Redux 的 API 十分复杂,学习成本也很高。如果你想快速入门 redux,推荐使用 reduct 这个小巧、易用的 npm 包。

reduct 与 Redux 的差异主要在于它采用了更简单的 API,无需繁琐的 actions、reducers 的配置,只需要将业务逻辑抽象成一些纯函数即可。

安装

你可以通过 npm 安装 reduct:

基本用法

首先,在你的脚本中引入 reduct:

然后,定义一个纯函数,该函数接受一个状态参数和一个动作参数,并返回一个新状态:

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

接下来,使用 createStore 创建 store:

这里的 counter 就是上一步定义的纯函数。

最后,我们可以通过以下方式获取 store 中的状态:

我们还可以通过以下方式来修改 store 中的状态:

这里的 type 就是上一步定义中的 INCREMENTDECREMENT

使用 Action Crator

通常,我们使用 action creator 来创建动作对象。 action creator 是一个纯函数,用于生成动作。例如:

然后,我们可以使用这些 action creator 来调度动作:

处理异步操作

reduct 还提供了一个中间件机制,可用于处理异步操作。

在创建 store 时,引入 middleware:

在 reduct 中,你可以使用 action creator 来发起异步操作。例如:

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

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

上面的代码中,fetchData() 返回一个函数,该函数接受 dispatch 函数作为其参数,通过 dispatch 函数来发起动作。

示例代码

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

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

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

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

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

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

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

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

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

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

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

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

以上示例演示了 reduct 库的基本使用、action creator 的使用,以及异步状态获取的使用。

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

纠错
反馈