问题描述:Vuex保存的数据在页面刷新后会全部丢失清除

问题解决方案:使用sessionstorage进行保存,在页面刷新时保存至sessionStorage,页面在加载时再进行填充   (另有vuex-persistedstate  插件可以解决这个问题,本人是使用typescript,使用‘vuex-module-decorators’注册vuex各module,不知如何使用该插件,就没有尝试过,想试试的可以去搜索,很多这方面文章)

在App.vue 中


import { UserModule } from '@/store/modules/user'
 
export default {
  created() {
//在页面加载时读取sessionStorage里的状态信息
if (sessionStorage.getItem('store')) {
this.$store.replaceState(
Object.assign(
{},
this.$store.state,
JSON.parse(sessionStorage.getItem('store'))
)
)
} //在页面刷新时将vuex里的信息保存到sessionStorage里
window.addEventListener('beforeunload', () => {
console.log('setstore')
sessionStorage.setItem('store', JSON.stringify(this.$store.state))
})
}
}
 

可能很多人也是这样做的,本人也是这么处理的,但是却一直没有作用,不知是否有和我同样的情况。可能个人情况不同,记录一下给自己备忘,给各位一个参考吧

但是在调试过程中记录log可以看到确实是执行了,但是确实没有效果,几经调试,发现下图中这个Register module:user,似乎每次刷新都会重新注册一次vuex,所以我在想是不是我其实是赋值到vuex中了,但是后面注册又重新初始化了vuex才导致数据一直没有初始化成功,所以我在App.vue 刚进入的时候就import了需要缓存的vuex,在后面的页面刷新发现解决了这个问题

Vuex 刷新后数据丢失问题 Typescript的更多相关文章

  1. 解决vuex在页面刷新后数据丢失的问题

    一.原因 js代码是运行在内存中的,代码运行时的所有变量.函数也都是保存在内存中的. 刷新页面,以前申请的内存被释放,重新加载脚本代码,变量重新赋值,所以这些数据要想存储就必须存储在外部,例如:Loc ...

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

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

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

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

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

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

  5. 用混入的方法引入vuex,并且解决vuex刷新页面值丢失的问题

    前段时间,做了个官网项目,客户要求将首页的域名后面的参数去除干净,然后就把#去掉了,一转脸,客户让去掉子页面地址栏上的参数,这很棘手,因为子页面的内容是根据子页面地址栏上的参数而定的,如果要去掉这些参 ...

  6. vue案例 - vuex+sessionstorage解决vue项目刷新后页面空白/数据丢失

    第一部分 SessionStorage 首先查看sessionStorage的地方在控制台的 Application > Storage > Session Storage这里: 根据se ...

  7. vue单页面应用刷新网页后vuex的state数据丢失问题以及beforeunload的兼容性

    最近在用vue写h5项目,当使用window.location重定向页面或者刷新当前页面时, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 后来在网上查找大神的解决方案如下: exp ...

  8. 前端 vue单页面应用刷新网页后vuex的state数据丢失的解决方案(转载)

    最近接手了一个项目,前端后端都要做,之前一直在做服务端的语言.框架和环境,前端啥都不会啊. 突然需要前端编程,两天速成了JS和VUE框架,可惜还是个半吊子.然后遇到了一个困扰了一整天的问题.一直调试都 ...

  9. 解决刷新页面vuex store中数据丢失的问题

    **问题背景:**页面刷新后,vuex中的数据丢失.这是因为:js代码是运行在内存中的,代码运行时的所有变量.函数也都是保存在内存中的.进行刷新页面的操作,以前申请的内存被释放,重新加载脚本代码,变量 ...

随机推荐

  1. Vuejs函数式组件,你值得拥有(1)

    函数式组件在React社区很流行使用,那么在vue里面我们要怎么用呢 下面会涉及到的知识点: 高阶函数.状态.实例.vue组件 什么是函数式组件 我们可以把函数式组件想像成组件里的一个函数,入参是渲染 ...

  2. Visual Studio IronPython CPython

    安装 IronPython - 张善友 - 博客园https://www.cnblogs.com/shanyou/archive/2006/09/14/504580.html VS2017作为pyth ...

  3. Docs-.NET-C#-指南-语言参考-预处理器指令:#endregion(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#endregion(C# 参考) 1.返回顶部 1. #endregion(C# 参考) 2015/07/20 #endreg ...

  4. python3-sql解析库——sqlparse

    1.官方文档 https://sqlparse.readthedocs.io/en/latest/ 2.快速开始 使用pip或者conda安装: conda install sqlparse 使用官网 ...

  5. Pycharm一些额外使用笔记

    (1)关于调试的一个小技巧: 在上面下栏的调试界面中可以修改变量a的值: (2)指定参数执行脚本: 第一步在run中指定edit configuration,然后在Parameters中指定训练的参数 ...

  6. 如何让winrar5压缩的文件能用低版本winrar打开

    https://jingyan.baidu.com/article/39810a2348ab24b636fda681.html 在压缩文件格式选项处点选[RAR4]选项,即之前版本的winrar支持的 ...

  7. 用VS Code写C#

    目录 前言 下载SDK 安装C#支持 快速创建C#控制台 格式化代码 launch:launch.json must be configured. change 'program' to the pa ...

  8. jenkins安装插件一直不动

    刷新界面即可,查看已安装的插件即可,这个时候已经安装完了,不用重启,直接使用插件即可

  9. HTML布局排版1清除body的margin

    观察可发现,一般的HTML页面分为上中下三部分,上边是导航一栏,中间是内容,下方是页面的下部分.注意html里body本身自带8px的上下左右外边距,如图,在qq浏览器和ie里可以看到body本身是8 ...

  10. C#Json数据反序列化为Dictionary并根据关键字获取指定的值

    Json数据: { "dataSet": { "header": { ", "errorInfo": "HTTP请求错误 ...