vuex-persist資料持久化儲存外掛
阿新 • • 發佈:2020-09-10
Vuex 解決了多檢視之間的資料共享問題。但是資料並不能持久化,只要一重新整理頁面,你儲存在 Vuex 中的 store 裡的資料就丟失了。
引入vuex-persist 外掛,它就是為 Vuex 持久化儲存而生的一個外掛。不需要你手動存取 storage ,而是直接將狀態儲存至 cookie 或者 localStorage 中。
安裝:
npm install --save vuex-persist
or
yarn add vuex-persist
引入:
import VuexPersistence from 'vuex-persist'
先建立一個物件並進行配置:
const vuexLocal = new VuexPersistence({ storage: window.localStorage })
引入進vuex外掛:
const store = new Vuex.Store({
state: { ... },
mutations: { ... },
actions: { ... },
plugins: [vuexLocal.plugin]
})
通過以上設定,在圖3中各個頁面之間跳轉,如果重新整理某個檢視,資料並不會丟失,依然存在,並且不需要在每個 mutations 中手動存取 storage 。
vuex-persist 的詳細屬性:
屬性 | 型別 | 描述 |
---|---|---|
key | string | 將狀態儲存在儲存中的鍵。預設: 'vuex' |
storage | Storage (Web API) | 可傳localStorage, sessionStorage, localforage 或者你自定義的儲存物件. 介面必須要有get和set. 預設是: window.localStorage |
saveState | function (key, state[, storage]) | 如果不使用儲存,這個自定義函式將儲存狀態儲存為永續性。 |
restoreState | function (key[, storage]) => state | 如果不使用儲存,這個自定義函式處理從儲存中檢索狀態 |
reducer | function (state) => object | 將狀態減少到只需要儲存的值。預設情況下,儲存整個狀態。 |
filter | function (mutation) => boolean | 突變篩選。看mutation.type並返回true,只有那些你想堅持寫被觸發。所有突變的預設返回值為true。 |
modules | string[] | 要持久化的模組列表。 |
作者:孟煩了的愛豆
連結:https://www.jianshu.com/p/a4faae6a3184