解決VUEX中刷新數據不存在問題


  監聽頁面是否刷新,如果頁面刷新了,將state對象存入到sessionStroage中。頁面打開之后,判斷sessionStorage中是否存在state對象,如果存在,則說明頁面是被刷新過,將sessionStorage中存的數據取出來,給vuex中的stage賦值,如果不存在,說明是第一次打開,則取vuex中定義的state初始值。

在App.vue中增加監聽刷新事件

export default {
  name: 'app',
  mounted() {
    //監聽刷新事件
    window.addEventListener('unload',this.saveState);
  },
  methods:{
    //sessionStorage只能存入字符串,所以要先把數據轉成字符串
    saveState(){
      sessionStorage.setItem('state',JSON.stringify(this.$store.state))
    }
  }
}

修改store/index.js中的state

const state = sessionStorage.getItem('state')?JSON.parse(sessionStorage.getItem('state')):{
    user:{
        name:''
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM