什么时候我应该在ReactJs中使用商店

时间:2016-01-14 09:14:24

标签: reactjs flux reactjs-flux redux

我对ReactJS / Flux实施中的商店有一些疑问。

基本上,我拥有使用商店的所有API请求。但有时,我认为商店是一种矫枉过正的功能。

一个简单的例子: 我只想显示在我的仪表板主页上注册的最后五个用户的列表。在用户刷新浏览器之前,我从不想刷新此列表。我应该只为此使用商店吗?或者也许我可以为我的主页创建一个“全局”商店,其中包含所有这些小事情(API请求的静态数据显示)。

我还有一个关于商店的问题,中型应用程序存储了多少?因为我已经有很多商店(20-30)。

您是否按页面创建了一个商店?通过型号?!通过组件?!

谢谢你的回复。

3 个答案:

答案 0 :(得分:2)

TL; DR:许多减速器,一个商店。

您使用Redux对此进行了标记,因此我会根据您使用Redux或想要用作Flux实现的假设来回答。

关于商店的数量,来自Redux文档:

  

重要的是要注意,Redux应用程序中只有一个商店。当您想要拆分数据处理逻辑时,您将使用reducer组合而不是许多商店。

因此,您可能希望创建一个家庭Reducer来处理主页的所有API响应,并将其保存到您的单个商店。

答案 1 :(得分:1)

在您的简单示例中,您可能不需要商店,但我仍然会使用商店,因为它可以使您的应用程序具有可扩展性。您永远不知道何时会要求您添加新功能。

关于你的另一个问题,完全取决于20-30个商店听起来有点过分。

就个人而言,我使用redux而且我只有一个商店有多个reducer,我使用redux的combineReducers组合。

答案 2 :(得分:0)

这个答案假设了一些事情,但这是我的尝试:

在这种情况下,商店可能过度,因为用户刷新页面后没有更新。对我来说似乎是一个静态对象。如果您还没有商店,并且想要继续使用商店,我建议(假设您正在使用flux)在需要此列表的组件中创建调度程序事件。调度员将监听您的操作中的事件。我猜你的动作是后端调用以获得最后5个用户,因此该操作将发出一个包含您想要的5个用户的事件。当调度程序收到事件时,您可以设置组件中的5个用户的列表。

我找到的商店的用例是当你有"生活"随页面上的用户交互而更改的对象。使用商店,可以很容易地根据间隔实时更新5个用户的列表,它还可以将调度程序逻辑从组件抽象出来,形成一个漂亮整洁的商店。