解決-刷新頁面Vuex數據丟失

vue將數據存入vuex裏面,在進行頁面刷新的時候,數據丟失,這裏有兩個解決辦法應對不同場景:

第一種

假如你的路由跳了3層以上,而且這幾個頁面都要用同一個數據roomId,肯定想到路由傳參的方式傳roomId,那麼問題來了:

1,就像微信公衆號下面(瀏覽器上面)的倒退和前進按鈕,點來點去的,參數就沒了。
2,刷新頁面參數丟失了(當然query傳參方式不會丟失,但是它會顯示在地址欄還有大小限制)

ok,解決方法:

  1. 初始化得到roomId後,存入sessionStorge
  2. Vuex裏面的state直接讀取存入sessionStorge的這個roomId
  3. 在頁面修改roomId的時候,提交mutation修改Vuex裏面存的roomId,同時將這個roomId存入sessionStorge
  4. 頁面裏面用到roomId的地方都去從Vuex裏面讀取

敘述起來很囉嗦,操作很簡單,這是朕最喜歡的辦法 這樣無論你在哪個頁面進行刷新,怎麼前進後退,數據都在。

第二種:

將請求這個數據源的辦法放在vuex裏面進行請求,在App.vue裏面進行提交,確保每次刷新都會拿到數據:

//  store
state: {
	dataList: []
},
mutations: {
    getDate(state) {
        this.$get('').then(res => {
            state.dataList = res.data
        })
    },
},


// App.vue
mounted () {
    this.$store.commit('getDate')
},

然後在你刷新的頁面獲取state.dataList


就醬~
~歡迎更新更快更有效的解決辦法

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