vuex能夠進行全局的狀態管理,但刷新後刷新後數據會消失,這是咱們不肯意看到的。怎麼解決呢,咱們能夠結合本地存儲作到數據持久化,也能夠經過插件-vuex-persistedstate。vue
插件的原理其實也是結合了存儲方式,只是統一的配置就不須要手動每次都寫存儲方法vuex
npm install vuex-persistedstate --save
複製代碼
在store下的index.js中npm
import createPersistedState from "vuex-persistedstate"
const store = new Vuex.Store({
// ...
plugins: [createPersistedState()]
})
複製代碼
默認存儲到localStorage數組
import createPersistedState from "vuex-persistedstate"
const store = new Vuex.Store({
// ...
plugins: [createPersistedState({
storage: window.sessionStorage
})]
})
複製代碼
默認持久化全部statebash
import createPersistedState from "vuex-persistedstate"
const store = new Vuex.Store({
// ...
plugins: [createPersistedState({
storage: window.sessionStorage,
reducer(val) {
return {
// 只儲存state中的assessmentData
assessmentData: val.assessmentData
}
}
})]
複製代碼
譬如:vuex提示的插件和持久化的插件一塊兒使用,配置以下cookie
import createPersistedState from "vuex-persistedstate"
import createLogger from 'vuex/dist/logger'
// 判斷環境 vuex提示生產環境中不使用
const debug = process.env.NODE_ENV !== 'production'
const createPersisted = createPersistedState({
storage: window.sessionStorage
})
export default new Vuex.Store({
// ...
plugins: debug ? [createLogger(), createPersisted] : [createPersisted]
})
複製代碼
plugins要是一個一維數組否則會解析錯誤session