解決瀏覽器刷新vuex數據丟失問題


vuex的主要作用是組件之間的通信以及對數據進行中心化管理。

但是由於vuex中的數據是存在運行內存中的,所以當我們刷新頁面的時候會導致store中的數據清空。

怎么解決這個問題呢?

我們可以使用傳統的存儲方式將store中的數據存起來,比如cookie、localstorage或者sessionstorage,這樣刷新頁面數據也不會丟失了。

只是為了保留瀏覽器刷新前的數據,所以我們選用sessionstorage,這樣關閉瀏覽器,存儲的數據就會被清空,不會產生重復數據。

具體實現思路是這樣的,我們監聽頁面刷新事件,在刷新前將store中的數據存儲到sessionstorge中。每次進入頁面的時候先讀取sessionstorage中的值並把它賦給store,這樣就保留了刷新前的數據。

export default {
  name: 'App',
  created () {
    if (sessionStorage.getItem("store") ) {   //頁面加載前讀取sessionStorage里的狀態信息
      this.$store.replaceState(Object.assign({}, this.$store.state,JSON.parse(sessionStorage.getItem("store"))))
    } 

    window.addEventListener("beforeunload",()=>{   //在頁面刷新前將vuex里的信息保存到sessionStorage里
      sessionStorage.setItem("store",JSON.stringify(this.$store.state))
    })
  }
}

 

 


參考鏈接:
https://blog.csdn.net/guzhao593/article/details/81435342


免責聲明!

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



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