1.vuex中存储的数据在刷新页面(F5)之后会丢失全部的数据
2.我想刷新页面之后不丢失。同时我还不想存储在window中的session和local中
各位大牛vuex中有没有相应的数据存储方法或者设置可以做到这样的效果
1.vuex中存储的数据在刷新页面(F5)之后会丢失全部的数据
2.我想刷新页面之后不丢失。同时我还不想存储在window中的session和local中
各位大牛vuex中有没有相应的数据存储方法或者设置可以做到这样的效果
我是在router.js中对其进行监听,如果vuex中的值为空,则从sessionStorage中重新赋值
// 以token为例,页面刷新时,重新赋值
if (sessionStorage.getItem("token")) {
store.commit("set_token", sessionStorage.getItem("token"));
}
五种方法
强烈推荐 history.replaceState(null, null, '?type=save')
该方法接受三个参数,依次为:
state
:一个与添加的记录相关联的状态对象,主要用于popstate
事件。该事件触发时,该对象会传入回调函数。也就是说,浏览器会将这个对象序列化以后保留在本地,重新载入这个页面的时候,可以拿到这个对象。如果不需要这个对象,此处可以填null
。title
:新页面的标题。但是,现在所有浏览器都忽视这个参数,所以这里可以填空字符串。url
:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。2.创建一个标识 写入hash window.location.hash = 'save' 用户在刷新浏览器时判断hash是否去请求接口,但是hash改变会被记录到浏览器中,每一次改变#后的部分,都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,会回到上一个位置,【所以此方法不推荐】
3.写入cookie 发送给服务端(数据量小的情况)
4.存储到localstorage(具有同源策略)
5.存储到sessionStorage(具有同源策略且标签之间不可共享数据)
8 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.9k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.9k 阅读
5 回答7.2k 阅读✓ 已解决
你的这个业务场景跟vuex没有关系吧?
vuex就是一个“提升变量”的一个工具,它是将state当做全局变量存储。F5刷新页面之后自然随着页面的刷新重新初始化state。
目前想让浏览器记住数据,一般都会采用cookie或者localStorage等方法,如果有什么其它方法,欢迎分享。