美文网首页前端开发那些事儿web玄机随录
解决vue刷新页面以后丢失store的数据

解决vue刷新页面以后丢失store的数据

作者: 景元合 | 来源:发表于2020-03-10 12:18 被阅读0次

    前言

    最近遇到个问题,vue中vuex中的store数据,会在页面刷新后初始化,为了解决这一问题决定将store里面数据在页面刷新前保存到sessionStorage,至于为何用他,因为页面关闭后他会被清空,localStorage则会一直存在,cookie又太小,因此sessionStorage最合适。

    1. 在app.vue的created方法中读取sessionstorage中的数据存储在store中,此时用vuex.store的replaceState方法,替换store的根状态
    2. 在beforeunload方法中将store.state存储到sessionstorage中。

    代码

    export default {
      name: 'app',
      created () {
        // 在页面加载时读取sessionStorage
        if (sessionStorage.getItem('store')) {
          this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))))
        }
        // 在页面刷新时将store保存到sessionStorage里
        window.addEventListener('beforeunload', () => {
          sessionStorage.setItem('store', JSON.stringify(this.$store.state))
        })
      }
    }
    

    相关文章

      网友评论

        本文标题:解决vue刷新页面以后丢失store的数据

        本文链接:https://www.haomeiwen.com/subject/jrhwdhtx.html