为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下vuex中的数据在页面刷新以后消失怎么办?

/ 猿问

请问一下vuex中的数据在页面刷新以后消失怎么办?

米脂 2019-09-03 10:06:40

vuex中的数据在页面刷新以后消失怎么办



查看完整描述

3 回答

?
临摹微笑

在mutation的state的自定义set change方法的时候 根据使用场景的不同
储存到Session Storage和Local Storage或者其他本地储存中
把对应state的初始化改成从本地储存中获取
另外本地储存 如果是存储JSON字符串 一定要做好相应的容错处理

查看完整回答
反对 回复 2019-09-07
?
HUWWW

一般在登录成功的时候需要把用户信息,菜单信息放置vuex中,作为全局的共享数据。但是在页面刷新的时候vuex里的数据会重新初始化,导致数据丢失。因为vuex里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,vuex里面的数据就会被重新赋值
办法一:将vuex中的数据直接保存到浏览器缓存中(sessionStorage、localStorage、cookie)

办法二:在页面刷新的时候再次请求远程数据,使之动态更新vuex数据

办法三:在父页面向后台请求远程数据,并且在页面刷新前将vuex的数据先保存至sessionStorage(以防请求数据量过大页面加载时拿不到返回的数据)

查看完整回答
反对 回复 2019-09-07
?
慕斯卡3215842

路由本身有query参数,但是我点击更新了query,也push了,页面url不改变,这个时候其实用到了对象的拷贝,你需要对query对象做拷贝,对象的拷贝方法
代码如下,我才用的对象变字符串再变对象拷贝方法
let query = this.$router.history.current.query;
let path = this.$router.history.current.path;
//对象的拷贝
let newQuery = JSON.parse(JSON.stringify(query));
newQuery.pid = pid;
this.$router.push({ path, query: newQuery });

查看完整回答
反对 回复 2019-09-07

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信