vuex持久化插件, Persist Vuex state by Web Storage
基于beforeunload事件,而不是vuex插件,比传统持久化方案效率更高。
npm install vue-vuex-persist
import Vue from 'vue';
// vuex store
import store from './store';
import vueVuexPersist from 'vue-vuex-persist';
Vue.use(vueVuexPersist, store, [options]);
import vueVuexPersist from 'vue-vuex-persist';
// 默认state的定义
const state = {
// state
};
// 调用vueVuexPersist.init(state),将缓存的state属性,覆盖掉默认state属性, 得到一个混合后的state
const hybridState = vueVuexPersist.init(state);
export default new Vuex.Store({
state: hybridState,
mutations: {
// mutations
},
actions: {
// actions
},
})
options参数可选,当没有传入options参数时候,默认会将全部state缓存,生命周期为session,即使用sessionStorage存储。
// persist all state
Vue.use(vueVuexPersist, store);
options为数组时,会将数组中的每一项缓存,生命周期为session。
Vue.use(vueVuexPersist, store, ['state1', 'state2']);
options也可以为对象,对象包括session,local属性,分别代表了state的缓存生命周期
Vue.use(vueVuexPersist, store, {
session: ['state1', 'state2'],
local: ['state3', 'state4']
});
Copyright (c) 2018-present, gaoge