【发布时间】:2018-06-07 12:50:46
【问题描述】:
我有非常大且复杂的对象,例如 userInfo、chatInfo 等,例如在对象和数组中具有非常大且嵌套的信息。每次刷新页面时,我的反应应用程序都会重置 redux 状态,我必须再次调用所有这些 API。
我对这个话题做了一些研究。我查看了 Dan Abramov 的关于 redux 的蛋头教程。他所做的是在浏览器的 localStorage 中维护 redux 状态,并在每 100 或 500 毫秒后更新 localStorage。我觉得这是一种代码味道。
不断观察localStorage状态并更新它,不会影响浏览器的性能。我的意思是这不是 Angular 1 失败的原因,因为它不断地观察状态变量,过了一段时间,如果网站在浏览器中保持活动状态,它就会变慢。因为我们的脚本不断地检查变量的状态。我觉得好像我们在这里做同样的事情。
如果在 localStorage 中维护 redux 状态是正确的方法,有人可以告诉我为什么会这样吗?如果没有,还有更好的方法吗?
这不是 How can I persist redux state tree on refresh? 的重复,因为我在寻求建议,在本地存储中持久化状态是否是代码异味
【问题讨论】:
-
我认为在 localStorage 中存储是正确的方法。我认为你不看localStorage,你只是更新它。假设您有 20 个变量要存储在 localStorage 中,只有在页面中这些变量发生更新时才更新 localStorage。
-
对我来说,刷新运行 SPA 的浏览器相当于重新启动计算机上的程序。我认为在大多数情况下,清除状态并在刷新时再次调用 API 是一件好事。如果页面进入奇怪的状态,您的用户将如何重置您的页面?正如您所建议的那样,长时间管理全局状态在我看来风险很大,应该避免。
-
redux-persist是事情 -
这不是 stackoverflow.com/questions/37195590/… 的副本,因为我在寻求建议,在本地存储中持久化状态是否是代码异味 @michael-freidgeim
标签: javascript reactjs redux local-storage state