Flux 架构简析
摘要
Flux 架构最初被 Facebook 使用来构建他们的客户端 web 应用。2015 年时有人提出了 Flux 架构在 Android 中的应用:
泡在网上的日子 曾翻译过这篇文章:
也推荐大家也看上面的文章,真真是极好的。
我的另一篇博客:
Flux 架构抽象
下图是最简单的 Flux 架构抽象图,与其他主流架构不同,Flux 架构最明显的两个特点是:
- 单向数据流
- 闭环

私以为 Flux 架构的核心是 Action,而一次完整的 Flux 闭环要经过下面 5 个步骤:
View的交互/响应发出特定的ActionDispatcher将Action分发至StoreStore响应Action,作出相应的数据更新Store通知View数据变动View刷新
我们用 创建一个妹子 的过程来举例:
- 点击
创建按钮,发送Action : 添加一个妹子 Dispatcher将Action : 添加一个妹子分发至StoreStore向数据集中添加一个妹子Store通知View更新View出现一个妹子
相信上面的过程很好理解,而 Flux 架构也真的就这么简单易懂,只是在实现时我们要考虑下面两点:
- 数据流如何传递
Action如何定义与发送
Flux 架构详解
我们先看一张更加完整的 Flux 架构实现图,相比于简单的抽象图,这张图里添加了:
User Interaction:View的用户交互事件,交付至Actions Creator生成不同的ActionActions Creator:Action生成器,响应用户交互,生成对应的ActionChange Event:Store通知View的媒介

这里有一点疑问,依前文所说,View 的交互触发 Action 的发送,那么这个 Actions Creator 是作什么用的。我们还是通过 创建一个妹子 的过程举例说明:

可以看到,最终发送的是 Action : 创建一个妹子成功 或 Action : 创建一个妹子失败,而非 View 发出的 创建一个妹子 这个请求,即 Action 并不由 View 直接发送,而是由 Actions Creator 响应 View 操作,做出 API 请求等操作,根据操作结果发送相应的 Action
最后提一点,为了方便 View 直接获取数据(非修改数据),Store 会暴漏一些数据接口供以 View 调用,参加下图:
