在flux webchat示例应用程序和README图中,似乎操作创建者应该从服务器检索数据。
我看到的问题是,如果数据已经存储在商店中,则可能不需要提取。商店是唯一知道的商店,因此需要实际调度行动。
我认为在可能的情况下获取非标准化数据会更好,以最大限度地减少xhr调用。如果商店是非规范化的,例如MessageStore
将包含呈现消息所需的所有数据。每条消息都是
{
"id": 42
"message": "Héllo, you tried reactjs-flux too. Awesome isn't it!"
"user": {id: 1337, username: "amirouche", bio: "maker"},
"likes": [{id: 2600, username: "NinjaTurtle"}, {id: 2601, username: "Peer"}
}
商店可能有责任(通过事件?)使用部分用户模型更新UserStore。
我想到的另一种方法是拥有一些规范化的商店,并使用视图所期望的架构创建特定的商店。
在这种情况下,在我看来,动作创建者只对调度有效负载有用。它毫无用处。
您怎么看?
答案 0 :(得分:5)
我经常让我的商店处理提取数据。这样做可以确保所有逻辑都可以由商店本身管理,并且您可以完全控制何时/如何/为何获取数据。
您还可以让商店相互通信,这也是商店应该负责处理/获取数据的另一个原因。
此外,由于Flux模式描述: “存储包含应用程序状态和逻辑。它们的角色有点类似于传统MVC中的模型,但它们管理着许多对象的状态。” 让商店管理从API /服务器端获取数据是有意义的。