解决Vuex页面刷新时数据丢失的问题

原因:因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被清空。

解决方法:将最新的vuex的状态在页面刷新前保存localStorage或这sessionStorage中;然后页面加载前将localStorage或这sessionStorage的状态再读入到vuex中。

页面不刷新,就用vuex的状态,也只需要维护vuex的状态;

//app.vue
created() {
    //在页面加载时读取sessionStorage里的状态信息
    if (sessionStorage.getItem('store')) {
      this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))));
    }

    //在页面刷新时将vuex里的信息保存到sessionStorage里
    window.addEventListener('beforeunload', () => {
      sessionStorage.setItem('store', JSON.stringify(this.$store.state));
    });
}

你可能感兴趣的:(Vuex,Vuex)