我还在研究Flux架构,并注意到:
因此,如果ControllerView依赖于两个商店的数据,并且这两个商店都被一个Action更改,那么ContollerView及其所有组件将被渲染(到虚拟DOM)两次,第一次使用不完整的数据
是否有任何公认的模式可以避免这种情况?我可以想到一些简单的解决方案,但我不想重新发明轮子。
答案 0 :(得分:1)
通常,您应该只允许它渲染多次。但是,如果操作始终在两个存储中触发操作,则可以使用"waitFor()" method of the dispatcher让一个存储更新,然后仅在第二个存储更新时发出更改。
只有当操作总是会影响两个商店时,这才有用。
答案 1 :(得分:0)
流量模式的最佳做法是限制有状态组件的数量,并尝试让顶级组件监听商店,并在道具中发送所有相关信息。
使用多个商店,一个解决方案可以在一次更改后最小化多个呈现:
这样,一次更改只会导致一次重新渲染。
答案 2 :(得分:0)
我将此添加以供将来参考:我没有找到任何有关vanilla Flux此问题的解决方案,并最终切换到Redux,它具有Flux的所有优点并没有遭受这种不利。