Vuex:刷新浏览器时保留部分状态

Posted

技术标签:

【中文标题】Vuex:刷新浏览器时保留部分状态【英文标题】:Vuex: Preserve parts of the state when refreshing the browser 【发布时间】:2018-04-25 12:25:09 【问题描述】:

我将 Vue 与 Vuex 一起使用。我遇到了以下问题:当用户按下浏览器的“刷新按钮”时,Vuex 存储中的状态会重置为其初始值。但是,我想保留状态。更准确地说,我只想保留部分状态,而不是全部。

现在我知道有一个名为“vuex-persistedstate”的插件。就是这个:

https://www.npmjs.com/package/vuex-persistedstate

还有一个选项可以只保留部分状态,但我不知道如何准确地做到这一点。例如,如果我们看一下 jsfiddle

https://jsfiddle.net/robinvdvleuten/wmf8zvf8/

有一个变量叫做“count”。假设我们在状态中有另一个变量“newCount”,我只想保留 newCount,而不是 count。我要详细写什么而不是plugins: [createPersistedState()]

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

无法在浏览器刷新后保留状态的任何部分。 为什么?因为它只是 javascript,所以所有发生的事情都会在刷新后重置。

如果要创建持久数据,则必须将其存储在某个地方。几种解决方案:

    使用远程数据库 创建服务器会话 存储在浏览器本地存储中(vuex-persistedstate默认解决方案) 存储在 cookie 中

小心浏览器存储,一些用户禁用它,你必须管理隐私和安全政策。

【讨论】:

以上是关于Vuex:刷新浏览器时保留部分状态的主要内容,如果未能解决你的问题,请参考以下文章

vue项目刷新页面导致数据消失问题解决

Nuxt,Vuex 数据在浏览器刷新时清除

7.Vue技术栈开发实战-状态管理Vuex进阶

Vue项目保持用户登录状态(localStorage + vuex 刷新页面后状态依然保持)

vue单页应用在页面刷新时保留状态数据的方法

在浏览器刷新时保存 XHR 渲染状态