vuex持久化的简单介绍及应用

本文介绍了如何通过 vuex-persistedstate 插件解决刷新页面时vuex数据丢失的问题,包括安装步骤、在store中的配置以及localStorage与sessionStorage的区别。重点在于确保在页面刷新后,关键状态如课程数据能保持不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景:
刷新页面的时候,vuex中存储的值会被清空,导致使用vuex中数据的页面无法正常显示,这时候就需要vuex数据持久化了。
方法
使用 vuex-persistedstate 插件
安装插件:

npm install vuex-persistedstate --save

在store文件的index.js中引入

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 course from "@/store/modules/course";
import examination from "@/store/modules/examination";
import dicts from "@/store/modules/dicts.js";
import paper from "./modules/paper";
import createPersistedState from "vuex-persistedstate"
Vue.use(Vuex);

const store = new Vuex.Store({
  modules: {
    app,
    user,
    tagsView,
    permission,
    settings,
    course,
    examination,
    dicts,
    paper,
  },
  getters,
  //创建持久化状态
  plugins: [createPersistedState({
  //存储位置,默认存储到localStorage
    storage:window.sessionStorage,
    //需要存的值,默认持久化所有state
    reducer(val)  {
      return{
        course:val.course
      }
    }
  })]
});

export default store;

localStorage与sessionStorage的区别:

localStorage: localStorage 的生命周期是永久的,关闭页面或浏览器之后 localStorage 中的数据也不会消失。localStorage 除非主动删除数据,否则数据永远不会消失

sessionStorage: sessionStorage 的生命周期是在浏览器关闭前。

API:
createPersistedState([options])使用给定的选项创建插件的新实例。可以提供以下选项来配置特定需求的插件:

key :存储持久状态的键。(默认:vuex)

paths :部分持续状态的任何路径的数组。如果没有路径给出,完整的状态是持久的。(默认:[])

reducer :一个函数,将被调用来减少基于给定的路径持久化的状态。默认包含这些值。指定需要持久化的state

subscriber :一个被调用来设置突变订阅的函数。默认为store => handler => store.subscribe(handler)

storage :默认为localStorage。

filter :将被调用来过滤将setState最终触发存储的任何突变的函数。默认为() => true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值