Vuex持久化存儲(chǔ)之vuex-persist問(wèn)題
Vuex持久化存儲(chǔ)之vuex-persist
Vuex 的狀態(tài)存儲(chǔ)并不能持久化。
也就是說(shuō)當(dāng)你存儲(chǔ)在 Vuex 中的 store 里的數(shù)據(jù),只要一刷新頁(yè)面,數(shù)據(jù)就丟失了。
引入vuex-persist 插件,它就是為 Vuex 持久化存儲(chǔ)而生的一個(gè)插件。
不需要你手動(dòng)存取 storage ,而是直接將狀態(tài)保存至 cookie 或者 localStorage 中。
具體用法
如下:
安裝:
npm install --save vuex-persist or yarn add vuex-persist
引入:
import VuexPersistence from 'vuex-persist'
先創(chuàng)建一個(gè)對(duì)象并進(jìn)行配置:
const vuexLocal = new VuexPersistence({ storage: window.localStorage })
引入進(jìn)vuex插件:
const store = new Vuex.Store({ state: { ... }, mutations: { ... }, actions: { ... }, plugins: [vuexLocal.plugin] })
通過(guò)以上設(shè)置,在圖3中各個(gè)頁(yè)面之間跳轉(zhuǎn),如果刷新某個(gè)視圖,數(shù)據(jù)并不會(huì)丟失,依然存在,并且不需要在每個(gè) mutations 中手動(dòng)存取 storage 。
vuex-persist 的詳細(xì)屬性
屬性 | 類型 | 描述 |
---|---|---|
key | string | 將狀態(tài)存儲(chǔ)在存儲(chǔ)中的鍵。默認(rèn): 'vuex' |
storage | Storage (Web API) | 可傳localStorage, sessionStorage, localforage 或者你自定義的存儲(chǔ)對(duì)象. 接口必須要有g(shù)et和set. 默認(rèn)是: window.localStorage |
saveState | function (key, state[, storage]) | 如果不使用存儲(chǔ),這個(gè)自定義函數(shù)將保存狀態(tài)保存為持久性。 |
restoreState | function (key[, storage]) => state | 如果不使用存儲(chǔ),這個(gè)自定義函數(shù)處理從存儲(chǔ)中檢索狀態(tài) |
reducer | function (state) => object | 將狀態(tài)減少到只需要保存的值。默認(rèn)情況下,保存整個(gè)狀態(tài)。 |
filter | function (mutation) => boolean | 突變篩選。看mutation.type并返回true,只有那些你想堅(jiān)持寫(xiě)被觸發(fā)。所有突變的默認(rèn)返回值為true。 |
modules | string[] | 要持久化的模塊列表。 |
Vuex持久化插件 Vuex-persist~~簡(jiǎn)單粗暴
我們知道vuex也有?些弊端,?如瀏覽器刷新的時(shí)候,vuex的數(shù)據(jù)會(huì)丟失,我們一般結(jié)合本地存儲(chǔ)來(lái)解決,這個(gè)時(shí)候就可以使用 vuex-persist 持久化插件,不需要手動(dòng)存取 storage ,而是直接將狀態(tài)保存至 cookie 或者 localStorage 中
第一步
使用命令行 安裝一下命令
npm i vuex-persist -S
第二部
引入到vuex
store/index.js
import VuexPersistence from "vuex-persist"
第三步
在store/index.js使用plugins
const vuexLocal = new VuexPersistence({ storage: window.localStorage //這里可以改變存儲(chǔ)方式,默認(rèn)是localStorage }) export default new Vuex.Store({ state: { ... }, mutations: { ... }, actions: { ... }, plugins: [vuexLocal.plugin] })
這個(gè)時(shí)候就能夠解決,刷因頁(yè)面數(shù)據(jù)丟失的問(wèn)題~~~~
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在 Vue 應(yīng)用中使用 Netlify 表單功能的方法詳解
Netlify 帶有內(nèi)置表單處理功能,可以用來(lái)存儲(chǔ)表單數(shù)據(jù),下載 csv 文件,同時(shí)可以在接收到新的提交時(shí)發(fā)送郵件通知或者通過(guò)配置 webhook 發(fā)送請(qǐng)求。這篇文章主要介紹了在 Vue 應(yīng)用中使用 Netlify 表單功能,需要的朋友可以參考下2019-06-06Vue計(jì)算屬性與監(jiān)視屬性實(shí)現(xiàn)方法詳解
最近在學(xué)習(xí)vue,學(xué)習(xí)中遇到了一些感覺(jué)挺重要的知識(shí)點(diǎn),感覺(jué)有必要整理下來(lái),這篇文章主要給大家介紹了關(guān)于Vue.js中計(jì)算屬性、監(jiān)視屬性的相關(guān)資料,需要的朋友可以參考下2022-08-08element vue Array數(shù)組和Map對(duì)象的添加與刪除操作
這篇文章主要介紹了element vue Array數(shù)組和Map對(duì)象的添加與刪除功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11webpack vue 項(xiàng)目打包生成的文件,資源文件報(bào)404問(wèn)題的修復(fù)方法(總結(jié)篇)
這篇文章主要介紹了解決webpack vue 項(xiàng)目打包生成的文件,資源文件報(bào)404問(wèn)題的修復(fù)方法,需要的朋友可以參考下2018-01-01Vue自定義指令實(shí)現(xiàn)彈窗拖拽四邊拉伸及對(duì)角線拉伸效果
小編最近在做一個(gè)vue前端項(xiàng)目,需要實(shí)現(xiàn)彈窗的拖拽,四邊拉伸及對(duì)角線拉伸,以及彈窗邊界處理功能,本文通過(guò)實(shí)例代碼給大家分享我的實(shí)現(xiàn)過(guò)程及遇到問(wèn)題解決方法,感興趣的朋友一起看看吧2021-08-08vue實(shí)現(xiàn)滾動(dòng)條始終懸浮在頁(yè)面最下方
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)滾動(dòng)條始終懸浮在頁(yè)面最下方,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04vue實(shí)現(xiàn)組件跟隨鼠標(biāo)位置彈出效果(示例代碼)
這篇文章主要介紹了vue中實(shí)現(xiàn)組件跟隨鼠標(biāo)位置彈出效果,本文通過(guò)圖文示例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02基于VUE實(shí)現(xiàn)的九宮格抽獎(jiǎng)功能
這篇文章主要介紹了基于VUE實(shí)現(xiàn)的九宮格抽獎(jiǎng)功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09