VueX瀏覽器刷新如何實(shí)現(xiàn)保存數(shù)據(jù)
VueX瀏覽器刷新保存數(shù)據(jù)
在vue項(xiàng)目中用vuex來做全局的狀態(tài)管理, 發(fā)現(xiàn)當(dāng)刷新網(wǎng)頁后,保存在vuex實(shí)例store里的數(shù)據(jù)會丟失。
原因:
因?yàn)楫?dāng)頁面刷新時,頁面會重新加載vue實(shí)例,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項(xiàng)目中用vuex來做全局的狀態(tài)管理, 發(fā)現(xiàn)當(dāng)刷新網(wǎng)頁后,保存在vuex實(shí)例store里的數(shù)據(jù)會丟失。
因?yàn)?store 里的數(shù)據(jù)是保存在運(yùn)行內(nèi)存中的,當(dāng)頁面刷新時,頁面會重新加載vue實(shí)例,store里面的數(shù)據(jù)就會被重新賦值初始化。
解決方法
使用vuex-along
vuex-along 的實(shí)質(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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vite+ts vite.config.ts使用path報錯問題及解決
這篇文章主要介紹了vite+ts vite.config.ts使用path報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
vue實(shí)現(xiàn)自定義公共組件及提取公共的方法
這篇文章主要介紹了vue實(shí)現(xiàn)自定義公共組件及提取公共的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Vue3 reactive響應(yīng)式賦值頁面不渲染的解決
這篇文章主要介紹了Vue3 reactive響應(yīng)式賦值頁面不渲染的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue2.0使用過程常見的一些問題總結(jié)學(xué)習(xí)
本篇文章主要介紹了Vue2.0使用過程常見的一些問題總結(jié)學(xué)習(xí),詳細(xì)的介紹了使用中會遇到的各種錯誤,有興趣的可以了解一下。2017-04-04
Vue項(xiàng)目中npm?install卡住問題解決的詳細(xì)指南
這篇文章主要介紹了Vue項(xiàng)目中npm?install卡住問題解決的相關(guān)資料,文中包括更換npm鏡像源、清除npm緩存、刪除.npmrc文件和升級Node.js版本,需要的朋友可以參考下2024-12-12
VUE簡單的定時器實(shí)時刷新的實(shí)現(xiàn)方法
這篇文章主要介紹了VUE簡單的定時器實(shí)時刷新的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
Vue3中使用pnpm搭建monorepo開發(fā)環(huán)境
這篇文章主要為大家介紹了Vue3中使用pnpm搭建monorepo開發(fā)環(huán)境示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

