以登陸退出爲例,我這裏使用的是sessionStorage去處理
(具體用localStorage(手動清除,數據消失)還是sessionStorage(會話窗口關閉,數據消失),可根據具體需求而定,處理方法流程同)
1.在改變state時候改變sessionStorage裏面的值,使其值與state中更新後的值一致
//loginState傳入true與false判定執行登陸還是退出
const mutations = {
alterLogin(state,loginState){
if(loginState){
sessionStorage.setItem('isLogin',true)
}else{
sessionStorage.removeItem('isLogin')
}
state.isLogin=loginState
}
}
2.getters去取定義好的狀態值,並在組件中使用
//組件中使用getters進行數據獲取
const state={
isLogin:false
}
const getters = {
getLogin(state){
if (!state.isLogin) {
state.isLogin=sessionStorage.getItem('isLogin')
}
return state.isLogin
}
}
遇到問題:
1.取出數據"[Object Object]",解決如下
sessionStorage以及localStorage只能存儲字符串,設置對象格式數據時候記得進行序列化;使用時進行反序列化,示例如下:
//序列化存入
sessionStorage.setItem('userData',JSON.stringify(loginState.userdata))
//反序列化取出
JSON.parse(loginState.userdata)
這樣,再試試一下,OK啦!