首页 > 解决方案 > 有没有办法让路由器响应 *NOT* 在返回页面时刷新 api 数据

问题描述

所以我有一个页面需要 5 秒才能从 API 加载数据。我把结果放在一个表中。用户单击其中一行,它会将他们带到另一条路线,其中包含有关该行的详细信息。他们没有看到他们想要的并返回到第一页。
页面刷新并重新拉取 API 数据 5 秒。
有没有办法调回第一页并且数据/状态仍然存在?似乎它在 react-native 中是这样工作的。
显然我可以实现分页/缓存等。但只是好奇我是否缺少某些东西。

标签: reactjsreact-routerfetchreact-router-dom

解决方案


这里有几件事要清楚。React 不是 SPA。它在本质上出现 SPA 只是因为它可以使用 CreateReactApp 之类的 cli 工具打包成这样。或者,可以使用nextjs等工具对 React 进行服务器端渲染(SSR)。

正如@CarsonEsplin 所指出的,具有正确依赖数组的 useEffect 应该会有所帮助。在某些存储中手动缓存是可能的,但除非您计划再次使用相同的数据而不在另一个反应组件中获取,否则应该没有必要。在这种情况下,像react-redux这样的应用程序状态管理工具应该会有所帮助。


推荐阅读