多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 它们如何在一起工作? 接下来看看这些角色是如何在一起工作的。 ### 开始 首先在应用启动时:启动只有一次。 1. Store 告知 Dispatcher 只要有 action 产生就通知它。 ![](https://box.kancloud.cn/2015-10-27_562edca86783e.jpg) 2. Controller View 从 Store 中获取最新的 state。 3. 当 Controller View 接到来自 store 的 state,就将其传递给它所管辖的子 View 去渲染。 ![](https://box.kancloud.cn/2015-10-27_562edca87a7c4.jpg) 4. Controller View 同时让 store 在 state 变化的时候通知自己。 ![](https://box.kancloud.cn/2015-10-27_562edca89105c.jpg) ### 数据流 应用启动后,就准备好接受用户的输入了。现在我们让用户做一些操作,触发一个 action。 ![](https://box.kancloud.cn/2015-10-27_562edca8a322d.jpg) 用户交互我们就产生一次数据流。 1. View 告知 Action Creator 准备一个 action。 ![](https://box.kancloud.cn/2015-10-27_562edde1a8543.png) 2. Action Creator 做好 action 并将其发送给 Dispatcher。 ![](https://box.kancloud.cn/2015-10-27_562edca8ccc4c.jpg) 3. Dispatcher 按照顺序将 action 传递给 store。每一个 store 都会受到所有的 action 通知,然后自行觉得是否对这个 action 做出响应,更新 state。 ![](https://box.kancloud.cn/2015-10-27_562edca8df5ed.jpg) 4. 一旦 store 更新 state 完毕,就会告知订阅了该 store 的 controller view。 5. 这些 controller view 就会向 store 请求更新了的 state。 ![](https://box.kancloud.cn/2015-10-27_562edca902b7b.jpg) 6. 从 store 中获得 state 之后,view controller 将会让它所管辖的子 view 渲染新的 state。 ![](https://box.kancloud.cn/2015-10-27_562edca918b08.jpg) 好了,这些就是我对 Flux 的理解,希望能够帮助到你!