npm 包 reducer-chain 使用教程

阅读时长 6 分钟读完

简介

reducer-chain 是一个用于创建 reducer 处理函数链的 npm 包。它可以让你更加灵活地组织 reducer 处理函数,让代码更加清晰、简洁。

安装

可以通过 npm 安装 reducer-chain 包:

使用

使用 reducer-chain,你需要创建一个处理函数链。然后,将这个处理函数链作为参数传递给 createReducer 函数,它会返回一个新的 reducer 处理函数。

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

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

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

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

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

在上面的例子中,chain 函数将 addmultiply 两个处理函数链接在一起,形成了一个处理函数链。当 reducer 接收到一个 action 时,会依次调用 addmultiply 处理函数,并将它们的返回值传递给下一个处理函数。

高级用法

reducer-chain 还提供了一些高级用法,可以让你更加灵活地组织处理函数链。

处理函数链参数

处理函数链中的每个处理函数都可以接受两个参数:statepayloadstate 表示当前的状态,payload 表示 action 的负载。

在上面的例子中,add 处理函数接受两个参数,将 state.count 加上 payload,并返回一个新的 state。

next 函数

如果需要在处理函数中让 reducer 跳过后面的部分处理函数,可以使用 next 函数。next 函数接受一个参数,表示要跳过的处理函数的数量。

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

在上面的例子中,如果 newState.count 大于 10,就直接返回 newState,并跳过后面的部分处理函数。如果不大于 10,就通过 next 函数,执行后面的一个处理函数。

跳过指定的处理函数

有时候,我们需要在处理函数中跳过指定的处理函数,而不是跳过后面的所有处理函数。这时可以使用 skip 函数。

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

在上面的例子中,如果 newState.count 大于 10,就通过 skip 函数,跳过 multiply 处理函数。如果不大于 10,就通过 next 函数,执行后面的一个处理函数。

示例

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

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

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

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

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

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

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

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

在上面的例子中,我们定义了 addAndMultiplyaddAndSkipMultiply 两个处理函数,它们分别演示了在处理函数中使用 nextskip 的用法。然后,我们使用 chain 函数将它们连接起来,形成了一个可以处理三个 action 的 reducer 处理函数。

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

纠错
反馈