导入
Flux 架构模式
了解 Flux。
Redux 是一个出色的 Flux 实现。不到半年时间,该库便成为 React 开发者的首选框架。
Redux 的官方定义是:“JavaScript 应用程序的可预测状态容器”。这意味着你的应用程序的所有状态都将集中存储在一个地方,从而可以在任意时刻查询当前的状态。
Flux
Flux 是一种通用的架构模式,而非特定的实现。它被认为重新定义了以往的 MVC(模型-视图-控制器)和 MVVM(模型-视图-视图模型)模式,以及由其他框架引入的双向数据绑定,提出了一种前端全新的事件流动方式,称为 单向数据流。
...
单向数据流
在 Flux 中,事件以循环的方式逐个处理,涉及多个参与者:分发器(dispatcher)、存储(stores)和动作(actions)。
- 一个 动作 是描述系统中任何变化的数据结构,例如鼠标点击、定时器事件等。
- 动作被发送到一个 分发器。分发器是系统中的唯一入口点,任何地方都可以提交动作供处理。
- 存储 负责维护应用的部分状态,并响应来自分发器的指令。
...
Flux 流程
以下是最简单的 Flux 流程:
- 存储订阅一部分动作。
- 发送一个动作到分发器。
- 分发器通知已订阅的存储该动作。
- 存储根据动作更新自身状态。
- 视图根据存储中的新状态进行更新。
- 接下来可以处理下一个动作。
这种流程确保了能够清晰地理解动作在系统中的传递路径,明确哪些操作会导致状态变化,以及状态将如何变化。
Flux 作为库
最初,Facebook 的开发团队并未开源其 Flux 的完整实现,而是仅发布了其中的一部分组件,例如分发器。然而,JavaScript 社区迅速采纳了 Flux 流程的概念,催生了大量开源实现的快速涌现。
一些新的 Flux 库严格遵循原始的 Flux 模式,而另一些则与最初的模式有显著差异。