av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

解決vue頁面刷新,數據丟失的問題

瀏覽:88日期:2022-10-24 10:46:03

在做vue項目的過程中有時候會遇到一個問題,就是進行F5頁面刷新的時候,頁面的數據會丟失,出現這個問題的原因是因為當用vuex做全局狀態管理的時候,store中的數據是保存在運行內存中的,頁面刷新時會重新加載vue實例,store中的數據就會被重新賦值,因此數據就丟失了,解決方式如下:

解決方法一:

最先想到的應該就是利用localStorage/sessionStorage將數據儲存在外部,做一個持久化儲存,下面是利用localStorage存儲的具體方案:

方案一:由于state中的數據是響應式的,而數據又是通過mutation來進行修改,故在通過mutation修改state中數據的同時調用localStorage.setItem()方法來進行數據的存儲。

import Vue from ’vue’;import Vuex from ’vuex’;Vue.use(Vuex);export default new Vuex.Store({ state: { orderList: [], menuList: [] }, mutations: { orderList(s, d) { s.orderList= d; window.localStorage.setItem('list',JSON.stringify(s.orderList)) }, menuList(s, d) { s.menuList = d; window.localStorage.setItem('list',JSON.stringify(s.menuList)) }, }})

在頁面加載的時候再通過localStorage.getItem()將數據取出放回到vuex,可在app.vue的created()周期函數中寫如下代碼:

if (window.localStorage.getItem('list') ) { this.$store.replaceState(Object.assign({}, this.$store.state,JSON.parse(window.localStorage.getItem('list'))))}

方案二:方案一能夠順利解決問題,但不斷觸發localStorage.setItem()方法對性能不是特別友好,而且一直將數據同步到localStorage中似乎就沒必要再用vuex做狀態管理,直接用localStorage即可,于是對以上解決方法進行了改進,通過監聽beforeunload事件來進行數據的localStorage存儲,beforeunload事件在頁面刷新時進行觸發,具體做法是在App.vue的created()周期函數中下如下代碼:

if (window.localStorage.getItem('list') ) { this.$store.replaceState(Object.assign({}, this.$store.state,JSON.parse(window.localStorage.getItem('list')))) } window.addEventListener('beforeunload',()=>{ window.localStorage.setItem('list',JSON.stringify(this.$store.state)) })

解決方法二(推薦):

這個方法是基于對computed計算屬性的理解,在vue的官方文檔中有這么一段話:

解決vue頁面刷新,數據丟失的問題

由此得知計算屬性的結果會被緩存,也就是說在有緩存的情況下,computed會優先使用緩存,于是也可以在state數據相對應的頁面這樣寫:

computed:{ orderList() { return this.$store.state.orderList }}

以上就是解決vue頁面刷新,數據丟失的問題的詳細內容,更多關于vue頁面刷新,數據丟失的資料請關注好吧啦網其它相關文章!

標簽: Vue
主站蜘蛛池模板: 日韩一区精品 | 午夜久久 | 青娱乐一区二区 | 成人免费视频观看视频 | 综合久久99 | 黑人一级黄色大片 | 成人午夜视频在线观看 | 色婷婷国产精品综合在线观看 | 日本不卡免费新一二三区 | 日本aaaa| 中文字幕 在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 日韩一区二区三区精品 | 天天操天天拍 | 欧美成人免费在线视频 | 欧美日韩高清在线一区 | 日韩精品一区二 | 精品一区久久 | 国产在线精品一区二区三区 | 欧美福利 | 日韩av免费在线电影 | 亚洲91精品 | 一区二区三区四区电影视频在线观看 | 99热99| 久久精品亚洲精品 | 久久com | 亚洲自拍偷拍视频 | 黄色三级免费网站 | 天天曰天天干 | av黄色免费在线观看 | 波波电影院一区二区三区 | 亚洲免费在线观看 | 国产偷久久一级精品60部 | 999热精品视频 | 亚洲国产欧美在线 | 中文字幕日韩欧美一区二区三区 | 欧美黄在线观看 | 国产欧美日韩在线观看 | 亚洲精品永久免费 | 久久国产成人 | 国产视频在线观看一区二区三区 |