我发现示例 todo Flux 应用程序有点缺乏,所以我试图通过开发一个应用程序来学习和实验来了解情况。
该应用程序是一个拖放式水果篮组织器。我有几个篮子,可以在它们之间拖着各种水果。您可以通过单击突出显示一个水果,最后拖动的项目将保持突出显示。
基于此,我有 3 家商店:
- 水果店
- 篮子商店
- AppStateStore - 跟踪最后点击和最后拖动的水果
当用户操作发生时,如果水果已被单击,则由 AppStateStore 调度和处理 FruitAction,如果已将水果移动到另一个篮子,则由所有商店处理。
主 AppView 组件侦听来自 FruitStore 和 AppStateStore 的更改事件并重新渲染。
我的问题是:
- 这是这种情况的好方法吗?
- AppView 是否应该监听多个商店?我应该如何防止 AppView 连续渲染多次?现在,当水果被移动时,FruitStore 和 AppStateStore 都会触发更改事件,导致连续两次渲染。
- React 网站上的 Flux 文章显示了调度动作对象的视图(例如 AppDispatcher.dispatch(TodoActions.updateText()) ),但如果动作自己调度(例如 FruitActions.moveBasket() )并且 AppView 是不知道 AppDispatcher?
- 目前只有 AppView 监听商店,但如果要突出显示,单个 Fruit 组件是否应该监听 AppStateStore 以仅重新渲染它们自己?
- 是否有更完整的 Flux 架构或类似的示例?