javascript - 刷新页面时,反冲不持久状态
问题描述
我对 React 后坐力有一些状态,但是每当手动刷新页面时,都会重置后坐力状态。
这是正常行为吗,因为我知道其他状态管理库喜欢flux
并且react-redux
会这样做。
将其保存到浏览器中是否是最佳实践localStorage
(因为 localStorage 也是一个同步 api,所以这肯定也会导致一些问题。)
即使它是一个相当新的库,是否有某种方法可以在手动页面刷新时保持状态?
解决方案
我对 React 后坐力有一些状态,但是每当手动刷新页面时,都会重置后坐力状态。
是的,这是正常行为。
这是正常行为吗,因为我知道 Flux 和 react-redux 等其他状态管理库会这样做。
是的,只有一部分状态管理库会保留数据本身。找到执行此操作的外部库或自定义解决方案更为常见。
将其保存到 localStorage 以使其实际保存在浏览器中是最佳实践吗(因为 localStorage 也是异步 API,因此肯定也会导致一些问题。)
这取决于您的需求:
- 您想提供完整的离线体验吗?去吧
- 您是否担心数据量大时对性能的影响?你可以考虑
indexedDB
- 您只是想保留一些身份验证令牌吗?可能
sessionStorage
是正确的解决方案 - 服务器是否需要知道存储的数据?你可以选择cookies
假设在不了解您的用例的情况下很难提出建议
即使它是一个相当新的库,是否有某种方法可以在手动页面刷新时保持状态?
是的,useRecoilTransactionObserver_UNSTABLE
您可以获得每次 Recoil 更改的通知并保存数据。然后,RecoilRoot' initializeState
你可以恢复它。正如您所说,该库是新的,API 可能会在接下来的几个月内迅速变化
推荐阅读
- php - localhost加载错误的css文件
- sql - 需要从选择查询记录集中记录标识符以及日期/时间戳
- c# - 为什么我有委托空异常
- java - 听 Realm insert/update/delete 并在更改时查看旧值和新值
- php - How do I cache data from a JSON API in PHP?
- c - 使用枚举的 C 宏
- django - 在列表中添加 static(...) 有什么作用?
- android - 错误:无法通知构建操作侦听器。> java/lang/Throwable$WrappedPrintWriter
- javascript - 使用 JavaScript 为元素设置样式不起作用
- c - 可以用便携式C编写从double到int的转换吗