谁负责从带有缓存的通量应用程序中的服务器获取数据?

IT技术 reactjs reactjs-flux
2021-05-09 06:40:28

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

通量数据流

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

我认为最好在可能的情况下获取非规范化数据,以最大限度地减少 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个回答

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

您还可以让商店相互通信这一事实也是为什么商店应该负责处理/获取数据的另一个优点。

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