在項(xiàng)目中會(huì)遇到這種問題杈抢,同過vuex
進(jìn)行公共的狀態(tài)管理印叁,在父級(jí)頁面設(shè)置的state
,跳轉(zhuǎn)到子頁面的時(shí)候曹仗,是可以拿到state
的初始值榨汤,但是當(dāng)子頁面刷新的時(shí)候,vuex
的state
賦值會(huì)恢復(fù)到父頁面沒有修改的狀態(tài)(父級(jí)頁面的修改操作無效)怎茫。
所以解決vuex
刷新消失的問題可以通過本地存儲(chǔ)來解決收壕,思路就是,刷新的時(shí)候判斷本地存儲(chǔ)有沒有存儲(chǔ)的鍵值對(duì)(賦值的vuex
)轨蛤,如果有啼器,就通過mutation
就把本地存儲(chǔ)的鍵值對(duì)賦值給state
,如果沒有俱萍,就證明用戶是第一次進(jìn)來,存一個(gè)本地存儲(chǔ)的鍵值對(duì)告丢。代碼如下枪蘑。
注意事項(xiàng),修改vuex的state的唯一途徑就是通過mutation修改岖免。
state: {
type: '',
},
mutations: {
change(state, val) {
if (val) {
state.type = val;
}
}
},
頁面使用vuex岳颇,this.type
是初始頁面進(jìn)來vuex輔助函數(shù)映射的state
值。
computed:{
...mapState(["type"]),
},
created(){
let type=localStorage.getItem("type");
if(type){
this.change(type)
}
else{
localStorage.setItem("type",this.type);
}
},