zoukankan      html  css  js  c++  java
  • vuex 刷新页面状态丢失

    问题描述:

      移动端底部导航栏切换时更换图标,切换状态,有两种解决方案,一是通过路由query传值,而是用vuex保存状态,我选择用vuex,但是页面刷新了会丢失状态值,一顿百度,发现js运行在内存中的,所有变量函数啊都是在内存中的,刷新页面以前申请的内存被释放,重新加载脚本代码,变量重新赋值,所以这些数据要想储存就必须储存在外部,比如localStroage和sessionStorage,

    我在APP.VUE中:

     1 export default {
     2   name: "App",
     3   components: {},
     4   created(){
     5     if(sessionStorage.getItem('store')){
     6       this.$store.replaceState(
     7         Object.assign(
     8           {},
     9           this.$store.state,
    10           JSON.parse(sessionStorage.getItem('store'))
    11         )
    12       )
    13     }
    14     //页面加载之前存到sessionStoarge里
    15     window.addEventListener('beforeunload',()=>{
    16       sessionStorage.setItem('store',JSON.stringify(this.$store.state));
    17     })
    18   }
    19 };

    这样就解决了

    为此,我发现JS 的内存,堆,栈,执行环境,http,https 这些鬼玩意真的需要好好的去认识一下。难怪面试会被问,因为工作中真的需要,好多好多东西要去学,学不动了~~

  • 相关阅读:
    Java中的匿名对象、内部类、包、代码块
    Java中的final和static关键字
    Java中的this与super关键字
    Java中的构造方法
    Java中的多态
    Vue+Element中Table懒加载,新增、删除操作后手动更新
    JQ取消hover事件
    github.com访问慢解决
    vue cli3 子目录问题
    右键事件 contextmenu
  • 原文地址:https://www.cnblogs.com/pfybk/p/14452691.html
Copyright © 2011-2022 走看看