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







网友评论