veux--頁面刷新更新後數據狀態無法保存問題

   以登陸退出爲例,我這裏使用的是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啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章