关于vuex状态持久化的问题解决方案

14 篇文章 0 订阅
13 篇文章 0 订阅

关于vuex状态持久化的问题解决方案

在我们vue项目中,经常会用到关于vuex的状态管理。可是我们在刷新页面的时候,悲剧的发现我们之前保存的状态都没有了。

那们我们怎么样来实现状态的管理呢?怎么持久化呢?

在查找很多资料后,大多数的帖子都是写的是使用注册事件的方式,来解决,比如:

原理如下:、

1、app.vue中注册监听页面刷新事件

2、在页面刷新之前要将state 对象进行转json字符串处理。

3、当页面刷新后,在将sessionStore中的state对象进行转对象处理,将state对象与sessionstore中state对象进行合并

但是在实际的效果测试中性能和效果并没有想象中的完美,总是有点小bug

今天,我在这里给大家介绍一款很使用vuex状态管理持久化的插件。

vuex-persistedstate

安装方式:

npm install vuex-persistedstate --save

使用方式:

import createPersistedState from 'vuex-persistedstate'

注册插件:

plugins: [createPersistedState({ storage: window.sessionStorage })]

差数介绍:

storage: window.sessionStorage

这里指定使用sessionStoreage的方式进行持久化,如果不指定,默认使用localStoreage的方式进行持久化

具体实例:

import Vue from 'vue'
import Vuex from 'vuex'
import user from '@/store/modules/user'
import app from '@/store/modules/app'
import getters from '@/store/getters'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
  modules: {
    user,
    app
  },
  getters,
  plugins: [createPersistedState({ storage: window.sessionStorage })]
})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值