javascript - react : What would be a recommended way to cache state of the app in the browser to minimize the amount of requests to the backend?

标签 javascript reactjs caching redux browser-cache

在我目前的工作中,我遇到了一个问题,应用程序似乎发出了一些额外的请求,我认为这些请求是可以避免的,并且应用程序已针对更好的性能进行了优化。

我们的技术堆栈是:Typescript + React + Redux(常规的,不是 Redux-Toolkit)

我希望得到以下结果:

  1. 相同的依赖值不应导致页面重新渲染并向后端发出新请求

  2. 当用户在应用程序的页面之间切换时,每次打开此页面时都会返回到先前打开的页面,从而发出一组完整的相同请求。

对于(1)问题,据我所知,我可以使用 useMemouseCallback 进行一些优化,但是尝试为(2)问题找到合适的解决方案我遇到了各种各样的选择:从手动设置一些逻辑或使用一些包装器在浏览器中使用 Session Storage 或 IndexedDB 创建缓存,到诸如 Redux-Toolkit + RTK Query 等解决方案,< strong>React Query、SWRRedux-Persist

您建议我采用什么方法?我想说,我知道它需要对代码和重构进行相当大的更改,因此,只要它们更具长期可持续性且更易于重用,即使更复杂的解决方案也非常适合。

据我了解,Redux-Toolkit + RTK Query 和 React Query 完全可以用于缓存且高度可持续,这是正确的吗?这两个选项中哪一个是推荐选项?

使用 Redux-Persist 之类的东西就足够了吗?据我了解,它允许缓存到 session 存储,就我而言,这很可能是我所需要的。只要在浏览器中打开页面并且没有更改依赖项,就应该保留状态。

最佳答案

应用程序将在必要时发出请求,缓存不会阻止这一点,它只是通过提供本地存储的数据来加快速度。

无需通过 redux 或工具包获取缓存,它只是一个可预测的状态管理器。

使用像rtk query、react query这样强大的数据获取工具会有所帮助,提供强大的缓存管理。

手动缓存很难处理。 session 存储缓存必须缩小、加密,并且需要大量的缓存清除和更新。

关于javascript - react : What would be a recommended way to cache state of the app in the browser to minimize the amount of requests to the backend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74106220/

相关文章:

javascript - 你能从 JavaScript 中删除一个元素并让所有内容相应地改变吗?

javascript - JS jQuery 每个循环过滤器追加列表

javascript - 从主机播放视频,因此在重新加载时它不会从头开始

c# - CS-Script 持久缓存可在加载脚本时提供更好的性能

javascript - 为什么 addEventListener 在标签文本区域发生更改后不起作用?

reactjs - 渲染后的 Om 回调(在更改应用程序状态后聚焦元素)

reactjs - 无法使用react-create-app将我的应用程序部署到github页面

reactjs - HOC 中的内部函数如何获取 props

ruby-on-rails - 来自控制台的 Rails 缓存不返回零

ruby-on-rails - 是否可以在 rabl View 中进行片段缓存?