在项目中会遇到这种问题,同过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);
}
},
网友评论