VueX瀏覽器刷新如何實現(xiàn)保存數(shù)據(jù)
VueX瀏覽器刷新保存數(shù)據(jù)
在vue項目中用vuex來做全局的狀態(tài)管理, 發(fā)現(xiàn)當(dāng)刷新網(wǎng)頁后,保存在vuex實例store里的數(shù)據(jù)會丟失。
原因:
因為當(dāng)頁面刷新時,頁面會重新加載vue實例,store里面的數(shù)據(jù)就會被重新賦值初始化
方法一
在 App.vue 的 created 鉤子函數(shù)里寫下了如下代碼;
//在頁面加載時讀取localStorage里的狀態(tài)信息 localStorage.getItem("userMsg") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("userMsg")))); //在頁面刷新時將vuex里的信息保存到localStorage里 window.addEventListener("beforeunload",()=>{ localStorage.setItem("userMsg",JSON.stringify(this.$store.state)) })
方法二
router/router.js 下
setItem()
刷新getItem()
刷新瀏覽器后,Vuex的數(shù)據(jù)丟失,如何解決?
在vue項目中用vuex來做全局的狀態(tài)管理, 發(fā)現(xiàn)當(dāng)刷新網(wǎng)頁后,保存在vuex實例store里的數(shù)據(jù)會丟失。
因為 store 里的數(shù)據(jù)是保存在運行內(nèi)存中的,當(dāng)頁面刷新時,頁面會重新加載vue實例,store里面的數(shù)據(jù)就會被重新賦值初始化。
解決方法
使用vuex-along
vuex-along 的實質(zhì)是將 vuex 中的數(shù)據(jù)存放到 localStorage 或者 sessionStroage 中。
安裝vuex-along
npm install vuex-along --save
配置 vuex-along: 在 store/index.js 中最后添加以下代碼:
import VueXAlong from 'vuex-along' //導(dǎo)入插件 export default new Vuex.Store({ ? ? //modules: { ? ? ? ? //controler ?//模塊化vuex ? ? //}, ? ? plugins: [VueXAlong({ ? ? ? ? name: 'store', ? ? //存放在localStroage或者sessionStroage 中的名字 ? ? ? ? local: false, ? ? ?//是否存放在local中 ?false 不存放 如果存放按照下面session的配置 ? ? ? ? session: { list: [], isFilter: true } //如果值不為false 那么可以傳遞對象 其中 當(dāng)isFilter設(shè)置為true時, list 數(shù)組中的值就會被過濾調(diào),這些值不會存放在seesion或者local中 ? ? })] });
使用localStorage 或者 sessionStroage
created() { ? ? //在頁面加載時讀取sessionStorage里的狀態(tài)信息 ? ? if (sessionStorage.getItem("store")) { ? ? ? this.$store.replaceState( ? ? ? ? Object.assign( ? ? ? ? ? {}, ? ? ? ? ? this.$store.state, ? ? ? ? ? JSON.parse(sessionStorage.getItem("store")) ? ? ? ? ) ? ? ? ); ? ? } ? ? //在頁面刷新時將vuex里的信息保存到sessionStorage里 ? ? window.addEventListener("beforeunload", () => { ? ? ? sessionStorage.setItem("store", JSON.stringify(this.$store.state)); ? ? }); },
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
腳手架(vue-cli)創(chuàng)建Vue項目的超詳細過程記錄
用vue-cli腳手架可以快速的構(gòu)建出一個前端vue框架的項目結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于腳手架(vue-cli)創(chuàng)建Vue項目的超詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05解決vue項目路徑不正確,自動跳轉(zhuǎn)404的問題
這篇文章主要介紹了解決vue項目路徑不正確,自動跳轉(zhuǎn)404的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10element ui el-date-picker組件默認(rèn)值方式
這篇文章主要介紹了element ui el-date-picker組件默認(rèn)值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12