Vuex——数据持久化

16 篇文章 0 订阅
3 篇文章 0 订阅

vuex-persistedstate

1.终端安装插件

npm install vuex-persistedstate --save

2.store文件引入

import Vue from 'vue'
import Vuex from 'vuex'
import app from './modules/app'
import user from './modules/user'
import tagsView from './modules/tagsView'
import permission from './modules/permission'
import settings from './modules/settings'
import getters from './getters'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    app,
    user,
    tagsView,
    permission,
    settings
  },
  getters,
  // 仓库存储数据持久化
  plugins: [createPersistedState({
    storage: window.sessionStorage,
      reducer (val) {
        return {
          // 只储存state中的单条信息
          user: {
            avatar: val.user.avatar
          }
        }
      }
  })]
})

export default store

3. 不同格式

3.1 所有数据持久化
  plugins: [
    createPersistedState({
      storage: window.sessionStorage
    })
  ]
3.2 单条数据持久化

1) (非对象组合)
// 如果想要持久化的数据不是对象中的属性,且存在,且改变该数据

avatar: ""

// 如果想要持久化的数据不是对象中的属性,在原有store中不存在,则在vuex中新增一条持久化数据

plugins: [createPersistedState({
    storage: window.sessionStorage,
      reducer (val) {
        return {
          // 只储存state中的单条信息
          avatar: val.user.avatar
        }
      }
  })]

2) (对象组合)
// 原有store中已有对象user, 这样写会使原有数据持久化

user: {
	avatar: ''
}
  plugins: [createPersistedState({
    storage: window.sessionStorage,
      reducer (val) {
        return {
          // 只储存state中的单条信息
          user: {
            avatar: val.user.avatar
          }
        }
      }
  })]
4. 示例 (3.2 - 2)

原来这个属性一刷新就会置空,通过持久化保留该数据,刷新也不会被清空(我的示例属于3.2—2)对象组合)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值