Logo
Section 1 / 5

Flux 架构模式

了解 Flux。

导入

Flux 架构模式

了解 Flux。

Redux 是一个出色的 Flux 实现。不到半年时间,该库便成为 React 开发者的首选框架。

Redux 的官方定义是:“JavaScript 应用程序的可预测状态容器”。这意味着你的应用程序的所有状态都将集中存储在一个地方,从而可以在任意时刻查询当前的状态。

Flux

Flux 是一种通用的架构模式,而非特定的实现。它被认为重新定义了以往的 MVC(模型-视图-控制器)和 MVVM(模型-视图-视图模型)模式,以及由其他框架引入的双向数据绑定,提出了一种前端全新的事件流动方式,称为 单向数据流。

...
单向数据流

在 Flux 中,事件以循环的方式逐个处理,涉及多个参与者:分发器(dispatcher)、存储(stores)和动作(actions)。

  • 一个 动作 是描述系统中任何变化的数据结构,例如鼠标点击、定时器事件等。
  • 动作被发送到一个 分发器。分发器是系统中的唯一入口点,任何地方都可以提交动作供处理。
  • 存储 负责维护应用的部分状态,并响应来自分发器的指令。
...
Flux 流程

以下是最简单的 Flux 流程:

  1. 存储订阅一部分动作。
  2. 发送一个动作到分发器。
  3. 分发器通知已订阅的存储该动作。
  4. 存储根据动作更新自身状态。
  5. 视图根据存储中的新状态进行更新。
  6. 接下来可以处理下一个动作。

这种流程确保了能够清晰地理解动作在系统中的传递路径,明确哪些操作会导致状态变化,以及状态将如何变化。

Flux 作为库

最初,Facebook 的开发团队并未开源其 Flux 的完整实现,而是仅发布了其中的一部分组件,例如分发器。然而,JavaScript 社区迅速采纳了 Flux 流程的概念,催生了大量开源实现的快速涌现。

一些新的 Flux 库严格遵循原始的 Flux 模式,而另一些则与最初的模式有显著差异。

Redux 和 Flux