我正在用Flux和React创建一个应用程序,这有点像游戏……这个应用程序有3个商店:
GameStore ->包含游戏状态,如已完成、玩家赢了多少次,以及以下内容
CounterStore ->是一个每隔1秒自动触发的倒计时存储,计数器组件会自我更新。
BlockStore ->这与游戏组件有关,它是用户可以交互的区块。
因此,每当我单击某个块时,我都会触发一个操作并将其放到BlockStore上。BlockStore会做一些魔术,并识别点击的区块是否正确,如果正确,它会更新GameStore (用户点击正确区块的次数)并更新CounterStore (这会增加用户的计时器)。
此外,每当CounterStore变为0时,它还会更改GameStore以设置用户丢失的值。
这感觉完全不对,我的商店他们以某种方式连接在一起。每个操作几乎改变了所有的存储,但一些操作依赖于存储结果来更改其他存储(这是令人困惑的:S)。
我想知道我这样做的方式是否正确,也许我应该把所有的东西都放在一个商店里(这会让它很难维护),或者移除一些商店,直接把一些东西当作一个组件状态(比如计数器)。
我在这里迷路了。
发布于 2015-10-21 03:27:33
取自https://facebook.github.io/flux/docs/overview.html:
存储包含应用程序状态和逻辑。它们的角色有点类似于传统MVC中的模型,但它们管理许多对象的状态-它们不像ORM模型那样表示单个数据记录。它们也不同于Backbone的集合。不仅仅是简单地管理ORM式对象的集合,存储还管理应用程序中特定域的应用程序状态。
您的GameStore不应该包含每个块的信息。BlockStore应该保存数据块和与各个数据块相关的数据。既然你有其他数据来描述游戏的整体状态,我建议你有第二个商店,专门用来保存那个状态(即。将保持计数器、进行中/完成、记分等的StateStore )。
https://stackoverflow.com/questions/33241956
复制相似问题