谁有责任通过缓存从助手应用程序中的服务器获取数据?

时间:2015-02-06 22:13:19

标签: reactjs reactjs-flux

在flux webchat示例应用程序和README图中,似乎操作创建者应该从服务器检索数据。

flux data flow

我看到的问题是,如果数据已经存储在商店中,则可能不需要提取。商店是唯一知道的商店,因此需要实际调度行动。

我认为在可能的情况下获取非标准化数据会更好,以最大限度地减少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。

我想到的另一种方法是拥有一些规范化的商店,并使用视图所期望的架构创建特定的商店。

在这种情况下,在我看来,动作创建者只对调度有效负载有用。它毫无用处。

您怎么看?

1 个答案:

答案 0 :(得分:5)

我经常让我的商店处理提取数据。这样做可以确保所有逻辑都可以由商店本身管理,并且您可以完全控制何时/如何/为何获取数据。

您还可以让商店相互通信,这也是商店应该负责处理/获取数据的另一个原因。

此外,由于Flux模式描述: “存储包含应用程序状态和逻辑。它们的角色有点类似于传统MVC中的模型,但它们管理着许多对象的状态。” 让商店管理从API /服务器端获取数据是有意义的。