首页 > 其他分享 >解决Vuex刷新页面数据没缓存的问题

解决Vuex刷新页面数据没缓存的问题

时间:2022-08-26 09:23:57浏览次数:75  
标签:缓存 sessionStorage state saveState 刷新 Vuex 监听 页面

  监听页面是否刷新,如果页面刷新了,将state对象存入到sessionStroage中。页面打开之后,判断sessionStorage中是否存在state对象,如果存在,则说明页面是被刷新过,将sessionStorage中存的数据取出来,给vuex中的stage赋值,如果不存在,说明是第一次打开,则取vuex中定义的state初始值。

在App.vue中增加监听刷新事件

复制代码
export default {
  name: 'app',
  mounted() {
    //监听刷新事件
    window.addEventListener('unload',this.saveState);
  },
  methods:{
    //sessionStorage只能存入字符串,所以要先把数据转成字符串
    saveState(){
      sessionStorage.setItem('state',JSON.stringify(this.$store.state))
    }
  }
}
复制代码

修改store/index.js中的state

const state = sessionStorage.getItem('state')?JSON.parse(sessionStorage.getItem('state')):{
    user:{
        name:''
    }
}

标签:缓存,sessionStorage,state,saveState,刷新,Vuex,监听,页面
From: https://www.cnblogs.com/CoderZX/p/16626462.html

相关文章

  • 京东页面的响应式布局
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"c......
  • 综合案例-黑马旅游网_分类数据展示缓存优化
    综合案例-黑马旅游网_分类数据展示缓存优化分析发现,分类的数据在每一次页面加载后都会重写请求数据库来加载对数据库压力比较大而且分类的数据不会经常产生变化所有可......
  • spring boot中的缓存管理
    springboot默认的缓存管理常用的缓存注解@EnableCaching:在类上使用,表示使用基于注解的方式进行缓存管理@Cacheable:用在类或者方法上。该注解用在方法上时,在方法执行......
  • vuex 的模块中如何调用 actions 中的方法
     模块vuexTest.js/***模块vuexTest.js*/exportdefault{namespaced:true,actions:{actionsHello(context,val){console.log(context,"context");//与s......
  • redis删除缓存时遇到的问题
    一、redis查询key的方式redis常用两种方式用于key的精确/模糊匹配 1.KEYSpattern keyspattern用于匹配pattern所有key,会返回当前库里所有匹配上......
  • 使用{{}}展示或更新页面数据时出现闪烁问题:当网速比较慢时,会让用户先看到表达式{{msg}
    可使用以下方式解决:1、使用v-cloak指令,然后为其设置css样式display:none;即上述代码可修改为:但有时添加完毕后变量仍会显示(即闪烁问题没解决),这是因为v-cloak 的displa......
  • html页面如何弹警示框
    前言html页面中,可以通过添加<scripttype="text/javascript">alert("警告文本");</script>语句来弹出警示框;alert()用于显示带有一条指定消息和一个“确定”按钮的警告框......
  • vue3 vuex4 store的响应式取值
    场景:在页面中点击按钮,数量增加,值是存在store中的,点击事件,值没变。<scriptsetuplang="ts">import{useStore}from'@/vuex';conststore=useStore()constonSu......
  • tidb 小表缓存
    TiDB在v6.0.0版本中引入了缓存表功能。该功能适用于频繁被访问且很少被修改的热点小表,即把整张表的数据加载到TiDB服务器的内存中,直接从内存中获取表数据,避免从TiKV......
  • form表单 input回车刷新页面问题
    1原因是因为当form表单中只有一个input时,按下回车建会自动触发页面的提交功能,所以会产生刷新页面的行为解决方案:<el-form:model="queryData"ref='queryData'status......