vuex--使用vuex-persistedstate持久化保存数据及配置哪些state需要持久化存储

  • vuex默认情况下数据存储在内存,刷新浏览器后数据变成初始状态
  • vuex-persistedstate可以让vuex中的数据持久保存在sessionstorage或localstorage中,刷新后不会变成初始状态
  • 引入依赖
	npm i -S vuex-persistedstate
  • 使用
import Vue from 'vue'
import Vuex from 'vuex'
import persistedState from 'vuex-persistedstate'
export default new Vuex.Store({
  //...
  plugins: [persistedState()]
})
  • vuex-persistedstate默认使用localStorage来存储数据,如果要使用sessionStorage:
plugins: [persistedState({ storage: window.sessionStorage })]
  • 如果要使用cookie:
1.引入
 npm i js-cookie
2.使用
 import * as Cookies from 'js-cookie'
 //...
 export default new Vuex.Store({
   //...
   plugins: [
     persistedState({
       storage: {
         getItem: key => Cookies.get(key),
         setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
         removeItem: key => Cookies.remove(key)
       },
     })
   ]
 })
  • 指定某个需要持久化的数据
 export default new Vuex.Store({
   //...
   plugins: [
     persistedState({
		//...
	   reducer(val){
         return {
           // 只储存state中的count
           count: val.count
         }
       }
     })
   ]
 })
  • 指定modules模块需要持久化的数据
const test = {
  state: {
    name: 'moduleA',
    type: 'module A'
  },
}
 export default new Vuex.Store({
   modules: {
     test
   },
   //...
   plugins: [
     persistedState({
		//...
	   reducer(val){
         return {
           // 只储存modules中的test的name
           name: val.test.name
         }
       }
     })
   ]
 })
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值