vuex-命名空间-vuex-persistedstate

vuex-命名空间-vuex-persistedstate

在定义store命名空间时,使用vuex-persistedstate持久化指定数据
https://www.jianshu.com/p/29fd74d4cf7b

我的项目中定义了两个module:data(命名空间d),event(命名空间e),分别存储全局参数和全局响应事件

  1. vuex-persistedstate 会在 state 改变时将值持久化

  2. 全部存储

export default new Vuex.Store({
  modules: {
    d: DataModule,
    e: EventModule
  },
  plugins: [
    persistedState({
      storage: window.sessionStorage
    })
  ]
})

得到

image.png

  1. 部分存储
import Vue from 'vue'
import Vuex from 'vuex'

import DataModule from './data/index.js'
import EventModule from './event/index.js'
import persistedState from 'vuex-persistedstate'
Vue.use(Vuex)

export default new Vuex.Store({
  modules: {
    d: DataModule,
    e: EventModule
  },
  plugins: [
    persistedState({
      storage: window.sessionStorage,
      reducer (state) {
        return {
          d: {
            user: state.d.user
          }
        }
      }
    })
  ]
})

得到
image.png

有点坑的是:vue的浏览器插件并不响应vuex-persistedstate写回vuex的事件,也不能正确读取vuex的数据,不知道我这样是否准确,总之在刷新之后,vuex中明明有值,但是插件中不显示,而且 Object 变成了 function,不清楚为什么
image.png