vuex持久化存储(vuex-persist)

在开发的过程中, vuex数据刷新页面会初始化。像用户信息(名字,头像,token)需要vuex中存储且需要浏览器本地存储来实现持久化存储。

1. 安装

npm install vuex-persistedstate --save
或
npm install vuex-vuex-persist--save

2.引入

在store目录下的index.js

import VuexPersistence from 'vuex-persist'import VuexPersistence from 'vuex-persistedstate '

2.1

在index.js下加下面代码就ok!如果不需要配置的话,到这就可以了

 plugins: [createPersistedState()]

在这里插入图片描述

3. 配置

import VuexPersistence from 'vuex-persist'
const vuexLocal = new VuexPersistence({
  key: 'Vuex-Persistence',
  storage: window.sessionStorage,
  reducer: state => {
    console.log('VuexPersistence:state', state)
    return {
      token: state.token
    }
  }
})

export default new Vuex.Store({
  state: {
    token: '',
    auth: false
  },
  mutations: {
    setToken(state, token) {
      state.token = token
    },
    setAuth(state, auth) {
      state.auth = auth
    }
  },
  plugins: [vuexLocal.plugin],
})

3. 状态持久化

import Vue from 'vue'
import Vuex from 'vuex'
import VuexPersistence from 'vuex-persist'
import menuModule from './menu'
Vue.use(Vuex)

const vuexLocal = new VuexPersistence({
  key: 'Vuex-Persistence',
  storage: window.sessionStorage,
  modules: ['menu'],
  reducer: state => {
    console.log('VuexPersistence:state', state)
    return {
      // 状态持久化
      token: state.token,
      // 模块持久化
      menu: state.menu
      // auth不做持久化
      // auth: false
    }
  }
})

export default new Vuex.Store({
  state: {
    // 配置了持久化
    token: '',
    // 没有配置持久化
    auth: false
  },
  mutations: {
    setToken(state, token) {
      state.token = token
    },
    setAuth(state, auth) {
      state.auth = auth
    }
  },
  actions: {},
  plugins: [vuexLocal.plugin],
  modules: {
     menu: menuModule
  }
})
 

4. 注意事项

1.引入modules配置后,无需使用命名空间取state
2.filter过滤mutation时,初次可以过滤,再次依然持久化

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆骆爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值