vuex本地持久化插件 vuex-persist

  1. 云栖社区>
  2. 博客>
  3. 正文

vuex本地持久化插件 vuex-persist

烟海之蓝 2019-07-18 18:44:51 浏览231
展开阅读全文

在vue项目中使用vuex本地持久化能更方便我们对数据的管理,不需要写localStorage或cookie等集合方法,统一用store来管理全局数据。

直接上代码

import Vue from 'vue'
import Vuex from 'vuex'
import VuexPersistence from 'vuex-persist'
import Cookies from 'js-cookie'
import { module as userModule, UserState } from './user'
import navModule, { NavigationState } from './navigation'
 
export interface State {
  user: UserState
  navigation: NavigationState
}
 
Vue.use(Vuex)
 
const vuexCookie = new VuexPersistence({
  restoreState: (key, storage) => Cookies.getJSON(key),
  saveState: (key, state, storage) =>
    Cookies.set(key, state, {
      expires: 3
    }),
  modules: ['user'], //only save user module
  filter: (mutation) => mutation.type == 'logIn' || mutation.type == 'logOut'
})
const vuexLocal = new VuexPersistence({
  key: 'vuexbase', // 这里可以自定义存入localStorage的键名,默认vuex
  storage: window.localStorage,
  reducer: (state) => ({ navigation: state.navigation }), //only save navigation module
  filter: (mutation) => mutation.type == 'addNavItem'
})
 
const store = new Vuex.Store({
  modules: {
    user: userModule,
    navigation: navModule
  },
  plugins: [vuexCookie.plugin, vuexLocal.plugin]
})
 
export default store

示例代码展示了 vuex-persist 基本用法,可以cookie、localStorage一起使用
官方地址

网友评论

登录后评论
0/500
评论
烟海之蓝
+ 关注