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