1、问题描述:页面刷新的时候vuex里的数据会重新初始化,导致数据丢失。因为vuex里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,vuex里面的数据就会被重新赋值。

2、解决思路:

办法一:将vuex中的数据直接保存到浏览器缓存中(sessionStorage、localStorage、cookie) 办法二:在页面刷新的时候再次请求远程数据,使之动态更新vuex数据 办法三:在父页面向后台请求远程数据,并且在页面刷新前将vuex的数据先保存至sessionStorage(以防请求数据量过大页面加载时拿不到返回的数据)

3、 解决过程:

3.1、选择合适的浏览器存储

3.2、解决方案

  1. 由于state里的数据是响应式,所以sessionStorage存储也要跟随变化,而且只能通过mutations来改变state中的值。 首先在用户登录成功之后,然后把用户信息,菜单信息通过actions分发保存至vuex中。然后在菜单页面计算vuex中state的菜单数据,将数据解析组装成前端组件所需的格式,然后渲染组件,生成菜单树。如果页面没有刷新,则一切正常。
  2. 监听浏览器刷新前事件,在浏览器刷新之前就把vuex里的数据保存至sessionStorage中,刷新成功后如果异步请求的数据还没返回则直接获取sessionStorage里的数据,否则获取vuex里的数据。

Vuex刷新页面数据会丢失吗?咋解决的?的更多相关文章

  1. 解决Vuex刷新页面数据丢失问题 ---- vuex-persistedstate持久化数据

    何为Vuex?用处是什么?为什么刷新丢失? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 ...

  2. 解决vuex刷新页面数据丢失

    1.前言 vue构建的项目中,vuex的状态存储是响应式的,当vue组件从store中读取状态的时候,若store中的状态发生变化,那么相应的组件也会得到高效刷新,问题来了,vuex存储的数据只是在页 ...

  3. 24、vuex刷新页面数据丢失解决办法

    刷新页面时候将state数据保存到localStorage里面: export default { name: 'App', created () { //在页面加载时读取localStorage里的 ...

  4. .net MVC中使用angularJs刷新页面数据列表

    使用angularjs的双向绑定功能,定时刷新页面上数据列表(不是刷新网页,通过ajax请求只刷新数据列表部分页面),实例如下: @{ Layout = null; } <!DOCTYPE ht ...

  5. JS页面刷新保持数据不丢失

    转自:https://blog.csdn.net/qq_32439101/article/details/78134877 下面是 DOM Storage 的接口定义: interface Stora ...

  6. bootstrap-table 刷新页面数据

    bom.bootstrapTable('load',msg['object']);//这一步 务必要添加. if(msg['code']==1){ bom.find('tbody').css('dis ...

  7. Select2插件ajax方式加载数据并刷新页面数据回显

    今天在优化项目当中,有个要在下拉框中搜索数据的需求:最后选择使用selec2进行开发: 官网:http://select2.github.io/ 演示: 准备工作: 文件需要引入select2.ful ...

  8. vue-router路由拦截基本设置,md5加密,js-cookie,vuex刷新页面store中的数据丢失等

    vuex持久化 vuex-persistedstate

  9. Clinet/Server在工作线程中刷新页面数据的方法

    Worker线程不能修改UI线程的状态(比如文本框里面的内容).解决的办法是写一个用来更新文本框内容的函数,然后在Worker线程里面通过BeginInvoke来利用delegate调用这个函数更新文 ...

  10. php+ajax+jquery 定时刷新页面数据

    testajax.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

随机推荐

  1. openvas漏洞扫描:使用openvas时扫描漏洞时,报告中显示的数据与数据库数据不同

    使用openvas设备进行漏洞扫描时,报告中的漏洞数量与readis数据库中查找到的漏洞数量不同 原因是,openvas的代码中默认在报告中显示的最小质量检测为70%.如图: 上图详细链接为:http ...

  2. 一起学JAVA:做一个简单的API项目吧(一)

    由于一些特殊原因,最近想要去学习JAVA,了解JAVA ,然后在此之前对JAVA只停留在能读懂代码,但是写不懂的状态,那么最近又很闲,所以打算重新进行一波自己的学习计划,又因为是三分钟的热情,所以特意 ...

  3. 【Unity】关于VS条件编译符号

    写在前面 起因:我在回顾LuaFramework_UGUI(作者Jarjin Lee)代码时,看到了C#代码中的条件编译符号,比如下图的ASYNC_MODE.虽然字面上知道是什么意思,但我对VS的条件 ...

  4. easy-rsa 不同版本克隆

    1.克隆easy-rsa 并切换到2.0版本的分支 yum install -y git git clone https://github.com/OpenVPN/easy-rsa.git cd ea ...

  5. 【随便翻翻】Steam Deck现在(基本上)不通过预订就能购买到

    根据Valve的消息,你不再需要通过预订来购买这家公司于今年早些时候发售的掌上游戏机Steam Deck.每个型号现在都应该可以购买到.在撰写本文时(2022年10月7日),Valve预计所有型号的交 ...

  6. python学习记录(四)-意想不到

    计数 from collections import Counter # 计数 res = Counter(['a','b','a','c','a','b']) print(res,type(res) ...

  7. 将后端的application/json的格式数据类型转换成前端需要的类型格式

    前提:后端返回的数据内容 但是红框的数据对于前端来说是不正确的数据 所以我感觉前端处理这个数据本身这个操作都很傻X 但是我尝试进行转换代码如下: 得到的数据: 点击查看代码 const interfa ...

  8. 深入理解css 笔记(8)

      接下来我们讲下响应式设计,最初开发人员通过创建两个网站来解决这个问题.桌面版和移动版,只是假如要兼容越来越多的设备,比如大屏的平板手机,ipad mini.这时候,强制分开的方案带来就比较多的麻烦 ...

  9. baodoumi mybaitplus自增很大问题

    参考: https://blog.csdn.net/u012019209/article/details/124585933 @TableId(type = IdType.AUTO) private ...

  10. springboot脱包部署

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...