问题描述
我找不到这个问题的答案。不知道这是否很明显,我是否考虑过度,还是尝试提出错误的问题。
基本上,我正在尝试使用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
(据我了解,Redux比Mobx难于学习和使用,但更好。)
无论如何,您都将获取的数据保存到所述管理器中的变量中,并随时随地访问它。
然后可以对其进行处理。当您需要时将其处理,然后将其保存在所有数据旁边。
,这实际上取决于有效负载/数据的大小。
如果负载很重,则必须分块加载。 这是什么意思? 假设您有一个包含100,000行的表,并且有一个分页选项卡,可让您一次看到1,000行数据。到那时,我会考虑“延迟加载”每1,000 / 5,000 / X行中的数据。同样,这取决于大小。
看来您的情况不会太重。要求提供玩家资料后,您将加载每个玩家的数据似乎很公平。感觉上好像有很多信息,但我认为将其加载一次并从那里开始工作就足够了。除非JSON真的很笨。
如果您需要在不同组件中使用数据,则可能要考虑使用 Redux ,这将使您的生活更加轻松。