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啦!

猜你喜欢

转载自blog.csdn.net/GQ_cyan/article/details/84492682