Logo
Section 1 / 6

什么是状态还原器模式?

让我们开始学习还原器模式吧!

检查点

什么是状态还原器模式?

让我们开始学习还原器模式吧!

为什么使用状态还原器模式?

状态还原器模式是本课程中我们将讨论的最后一个、也是最复杂的模式。不要被它吓到。我会慢慢解释它的实际运作原理,同时说明它的重要性。

当我们编写自定义 Hook 或组件时,它们很可能需要某种方式来跟踪内部状态。通过状态还原器模式,我们把控制权交给自定义 Hook/组件的使用者,让他们决定内部状态如何更新。

普通模式下的状态更新

这种机制的技术术语称为“控制反转”(inversion of control)。通俗地说,就是一种允许用户控制你 API 内部工作方式的系统。

让我们从概念上理解一下它是如何工作的。

自定义 Hook 或组件向使用者传递更新的标准流程如下:

...
自定义 Hook/组件中的状态更新通信

在自定义 Hook 中,我们调用 useState、useReducer 或 setState 来内部更新状态。一旦更新完成,新的状态值就会传递给使用者。

这正是我们之前所学的所有模式的工作方式。

还原器模式下的状态更新

在状态还原器模式中,内部状态更新的方式发生了显著变化。

以下是示意图:

...
新的内部状态更新模式

使用状态还原器时,关键点在于:在进行任何内部状态更新之前,我们会先将提议的变更发送给使用者。如果使用者认可这些变更,我们就按提议的内容更新状态;如果他们希望覆盖某个状态变更,也可以自行决定。

内部状态的更新由使用者控制,他们拥有发言权!

快速小测验!

让我们通过一个小测验来检验对状态还原器模式的理解。


接下来的课程中,我们将深入探讨该模式的具体实现细节!

Quiz

单选题

其他模式中的更新是如何进行的?

1 / 2

状态初始化

重构为 useReducer