通过API从大数据集中准备状态数据

问题描述

我找不到这个问题的答案。不知道这是否很明显,我是否考虑过度,还是尝试提出错误的问题。

基本上,我正在尝试使用React(第一个项目)构建一个应用程序,在该应用程序中我可以获得给定玩家的英雄联盟比赛历史记录(例如,全年300场比赛,甚至有史以来所有比赛)。显然,每场比赛都包含一些有关其的数据(持续时间等)

现在,我想遍历这些匹配项,并准备一些要在应用程序的不同部分中使用的数据。例如,我想统计玩家在不同冠军上玩了多少场比赛,他们的统计数据,获胜率等。我不确定应该在哪里进行数据处理。从API取回数据后应该正确吗?还是仅当我需要使用冠军摘要来呈现组件时?-第二个对我而言意义不大,因为我不得不在应用程序的不同部分中再次经历这300场比赛其他一些信息。另一方面,我觉得要预先收集所有这些数据并将其保存到状态中,以防万一,这太过分了。

请给我一些指示。

解决方法

在我看来,您需要某种全局状态管理器

我知道的选项是React的useContext,Mobx和Redux。

如果只需要一些变量或少量数据,则应使用React的Context Hook:https://reactjs.org/docs/hooks-reference.html#usecontext

否则,最常见的是使用Mobx或Redux。

https://mobx.js.org/README.html

https://redux.js.org/

(据我了解,Redux比Mobx难于学习和使用,但更好。)

无论如何,您都将获取的数据保存到所述管理器中的变量中,并随时随地访问它。

然后可以对其进行处理。当您需要时将其处理,然后将其保存在所有数据旁边。

,

这实际上取决于有效负载/数据的大小。

如果负载很重,则必须分块加载。 这是什么意思? 假设您有一个包含100,000行的表,并且有一个分页选项卡,可让您一次看到1,000行数据。到那时,我会考虑“延迟加载”每1,000 / 5,000 / X行中的数据。同样,这取决于大小。

看来您的情况不会太重。要求提供玩家资料后,您将加载每个玩家的数据似乎很公平。感觉上好像有很多信息,但我认为将其加载一次并从那里开始工作就足够了。除非JSON真的很笨。

如果您需要在不同组件中使用数据,则可能要考虑使用 Redux ,这将使您的生活更加轻松。