關(guān)于vuex狀態(tài)刷新網(wǎng)頁(yè)時(shí)數(shù)據(jù)被清空問題及解決
vuex狀態(tài)刷新網(wǎng)頁(yè)時(shí)數(shù)據(jù)被清空問題
vuex狀態(tài)管理,在網(wǎng)頁(yè)刷新數(shù)據(jù)被清空的解決方法。
在main.js中寫入下面的代碼段(親測(cè)有效)
//刷新保存狀態(tài) if (sessionStorage.getItem("store")) { store.replaceState( Object.assign( {}, store.state, JSON.parse(sessionStorage.getItem("store")) ) ); sessionStorage.removeItem("store") } //監(jiān)聽,在頁(yè)面刷新時(shí)將vuex里的信息保存到sessionStorage里 window.addEventListener("beforeunload", () => { sessionStorage.setItem("store", JSON.stringify(store.state)); });
vuex狀態(tài)在頁(yè)面刷新時(shí),會(huì)清空狀態(tài)的解決
store寫入的state在頁(yè)面刷新時(shí)會(huì)被清空,這時(shí)可以用sessionStorage緩存狀態(tài)。因?yàn)閘ocalStorage會(huì)永久保存數(shù)據(jù),只有用戶手動(dòng)清除的時(shí)候才會(huì)清除。cookie存儲(chǔ)內(nèi)存只有4k,并且始終在同源的http請(qǐng)求中攜帶。而sessionStorage在關(guān)閉瀏覽器頁(yè)面時(shí)就會(huì)清空。
因?yàn)闋顟B(tài)只會(huì)在刷新頁(yè)面的時(shí)候清空,所以我們只需要去app.vue里面在頁(yè)面刷新之前把store保存在sessionStorage里面。在頁(yè)面加載時(shí)讀取sessionStorage的值
由于瀏覽器存儲(chǔ)時(shí)會(huì)自動(dòng)把對(duì)象轉(zhuǎn)換成字符串格式,且不具備轉(zhuǎn)換對(duì)象的鍵和值為字符串的效果,只會(huì)轉(zhuǎn)換為[object,object]。因此需要先將對(duì)象轉(zhuǎn)換為json字符串存儲(chǔ),取出時(shí)再使用JSON.parse()方法轉(zhuǎn)換為json對(duì)象。
app.vue
created () { ? ? // 在頁(yè)面加載時(shí)讀取sessionStorage ? ? if (sessionStorage.getItem('store')) { ? ? ? this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store')))) ? ? } ? ? // 在頁(yè)面刷新時(shí)將store保存到sessionStorage里 ? ? window.addEventListener('beforeunload', () => { ? ? ? sessionStorage.setItem('store', JSON.stringify(this.$store.state)) ? ? }) ? }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue輕量級(jí)框架無(wú)法獲取到vue對(duì)象解決方法
這篇文章主要介紹了vue輕量級(jí)框架無(wú)法獲取到vue對(duì)象解決方法相關(guān)知識(shí)點(diǎn),有需要的讀者們跟著學(xué)習(xí)下。2019-05-05利用vue.js把靜態(tài)json綁定bootstrap的table方法
今天小編就為大家分享一篇利用vue.js把靜態(tài)json綁定bootstrap的table方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08vue+element多選級(jí)聯(lián)選擇器自定義props使用詳解
這篇文章主要給大家介紹了關(guān)于vue+element多選級(jí)聯(lián)選擇器自定義props使用的相關(guān)資料,級(jí)聯(lián)選擇器展示的結(jié)果都是以數(shù)組的形式展示,也就是v-model綁定的結(jié)果,需要的朋友可以參考下2023-07-07vue中post請(qǐng)求報(bào)400的解決方案
這篇文章主要介紹了vue中post請(qǐng)求報(bào)400的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10單頁(yè)面Vue頁(yè)面刷新出現(xiàn)閃爍問題及解決
這篇文章主要介紹了單頁(yè)面Vue頁(yè)面刷新出現(xiàn)閃爍問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07