store\plugins\sessionStoragePlugin.js
import { debounce } from "lodash";
const storageId = "oms/state";
function loadSate() {
return window.localStorage.getItem(storageId);
}
function saveSate(mutation, state) {
console.log(state,'缓存文件')
window.localStorage.setItem(storageId, JSON.stringify(state));
}
export default function sessionStoragePlugin(store) {
let sessionState = loadSate();
if (sessionState) {
sessionState = JSON.parse(sessionState);
store.replaceState(sessionState);
}
store.subscribe(debounce(saveSate, 500));
}
store\index.js
import Vue from "vue";
import Vuex from "vuex";
import actions from "./actions";
import user from "./modules/user";
import quality from "./modules/quality";
import sessionStoragePlugin from "./plugins/sessionStoragePlugin";
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
user,
quality,
},
actions,
plugins: [sessionStoragePlugin],
state: {},
mutations: {},
getters: {}
});