vuex刷新消失问题

在项目中会遇到这种问题,同过vuex进行公共的状态管理,在父级页面设置的state,跳转到子页面的时候,是可以拿到state的初始值,但是当子页面刷新的时候,vuexstate赋值会恢复到父页面没有修改的状态(父级页面的修改操作无效)。

所以解决vuex刷新消失的问题可以通过本地存储来解决,思路就是,刷新的时候判断本地存储有没有存储的键值对(赋值的vuex),如果有,就通过mutation就把本地存储的键值对赋值给state,如果没有,就证明用户是第一次进来,存一个本地存储的键值对。代码如下。

注意事项,修改vuex的state的唯一途径就是通过mutation修改。

 state: {
    type: '',
  },
 mutations: {
    change(state, val) {
      if (val) {
        state.type = val;
      }
    }
  },

页面使用vuex,this.type是初始页面进来vuex辅助函数映射的state值。

 computed:{
            ...mapState(["type"]),
        },
  created(){
            let type=localStorage.getItem("type");
            if(type){
                this.change(type)
            }
            else{
                localStorage.setItem("type",this.type);
            }
        },

你可能感兴趣的:(vuex刷新消失问题)