Vuex持久化传送门:Vuex数据持久化
由于项目中需要一个用户登出的功能,而数据放在Vuex中在登出没有刷新时数据并不会更新
所以找到了这样一个很不错的方法

  1. 将state以各种方式保存
  2. 注册时调用函数赋值
  3. 清空时再将保存的state赋值替换当前的state
  4. over

首先默认state时要用新的方法注册

把数据写在函数的返回值中(其他方法也可以只要能调用)

const getDefaultState = () => {
  return {
    token: getToken(),
    name: '',
    avatar: '',
    permList:[]
  }
}

给Vuex中的state赋值并注册

const state = getDefaultState();

const store = new Vuex.Store({
  modules: {
    app,
    settings,
    state,
    permissions
  },
  // state: {
  //   disinfectsList: []
  // },
  // mutations: {
  //   //为查询消毒信息列表存入数据
  //   setdisinfectsList(state, data) {
  //     state.disinfectsList = data
  //   }
  // },
  getters
})

在mutations中定义方法

  RESET_STATE: (state) => {
    Object.assign(state, getDefaultState())
  },

页面中使用

    commit('RESET_STATE');
Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐