【问题标题】:Is there a way to get react router to *NOT* refresh api data on return to page有没有办法让路由器响应 *NOT* 在返回页面时刷新 api 数据
【发布时间】:2020-12-26 03:42:20
【问题描述】:

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

【问题讨论】:

  • 没有看到您的代码,我无法提供任何直接帮助,但也许 useEffect 在这里对您有用吗?将 API 调用放在 useEffect 块中只会在满足您的特定条件时调用它 (reactjs.org/docs/hooks-effect.html)。如果您需要更具体的帮助,请随时发布一些代码!
  • 我从概念上看它,所以没有将其视为代码问题。我还没用过 Hooks,你是说 Hooks 会给我以前不存在的功能吗?

标签: reactjs react-router fetch react-router-dom


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2022-06-17
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多