我应该一次获取所有数据并将其保存在状态中吗?

Should I fetch all data at once and save it in the state?

我目前正在为用户列表实现分页(只是一个例子)。一种方法是按页面获取用户。这意味着我向 API 传递了一些东西,这样它就会 return 一组与当前页面相对应的用户。另一种方法是获取所有用户,将其保存在状态中,并在 React 中进行所有计算(页数等)。

在接下来的几天里,我计划实施轮询(我是新手,顺便说一句)这样只要数据库记录发生变化,数据就会始终是最新的。

请问您的意见,我该走哪条路?我不确定哪个与轮询结合起来更好,因为我对它比较陌生。我担心如果我获取所有用户然后进行轮询,它可能会消耗大量内存并导致浏览器崩溃。

我觉得,你可以这样试试,按分页抓取用户,一收到数据,就可以attach/replace到现有数组

最好按页面获取用户,因为这会导致在服务器和客户端之间传输的数据最少。您可以在需要时获取数据。当第一页加载时,您可以将其保存到状态,当第二页加载时,您可以将其附加到状态(这样您就不必再次获取整个数据)。预先获取所有数据没有意义,因为这会增加加载时间(特别是因为您谈到了可能导致浏览器崩溃的大量数据)。如果你有那么多数据,你也可以用新数据替换状态。

一次获取所有数据然后在前端执行分页不是推荐的解决方案,因为您不必要地从数据库中获取所有数据。数据应在用户请求时按需获取。

要提高性能,您可以做的一件事是获取当前页面和 next/previous 页面的数据并将其保存在状态中。一旦用户决定转到第 3 页,然后进行 API 调用以获取该数据。