Vuex持久化存儲(chǔ)之vuex-persist

問題背景:

Vuex 解決了多視圖之間的數(shù)據(jù)共享問題。但是運(yùn)用過程中又帶來了一個(gè)新的問題是,Vuex 的狀態(tài)存儲(chǔ)并不能持久化。也就是說當(dāng)你存儲(chǔ)在 Vuex 中的 store 里的數(shù)據(jù),只要一刷新頁面,數(shù)據(jù)就丟失了。

引入vuex-persist 插件,它就是為 Vuex 持久化存儲(chǔ)而生的一個(gè)插件。不需要你手動(dòng)存取 storage ,而是直接將狀態(tài)保存至 cookie 或者 localStorage 中。具體用法如下:

pexels-photo-1211847.jpeg

安裝:

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]
}) 

通過以上設(shè)置,在圖3中各個(gè)頁面之間跳轉(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 突變篩選??磎utation.type并返回true,只有那些你想堅(jiān)持寫被觸發(fā)。所有突變的默認(rèn)返回值為true。
modules string[] 要持久化的模塊列表。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 豬是六畜之首,又叫豚,豬肉就是家豬的肉?,F(xiàn)在的家豬是有野豬馴化而來的,咱們國家的豬有100多個(gè)品種,豬肉以雄性豬肉...
    笨笨的成長之路閱讀 621評(píng)論 0 1
  • 不知道從何時(shí)起,我就喜歡上了主持人這一個(gè)角色,但是由于不是專業(yè)出身,我并沒有把它當(dāng)做謀生的技能,而是轉(zhuǎn)變成自己的一...
    愛折騰的雙子閱讀 768評(píng)論 0 2
  • 一、初相遇 纖纖玉手掀開厚厚的車窗簾,略顯蕭肅的春風(fēng)裹挾著泥土的味道撲了滿面,寧楚格深深的吸了口氣,這才算感受到真...
    沒見過連翹的白芷閱讀 555評(píng)論 3 4
  • 目標(biāo)詞匯: classroom, playground, bathroom, cafeteria, gym, st...
    六六大叔閱讀 309評(píng)論 0 0
  • 1.為什么要使用模塊化? 2. CMD、AMD、CommonJS 規(guī)范分別指什么?有哪些應(yīng)用 Commonjs:用...
    66dong66閱讀 227評(píng)論 0 0

友情鏈接更多精彩內(nèi)容