【陪诊系统-PC管理端】vuex数据持久化实现

问题:

根据前面的功能步骤,虽然已经实现了动态路由添加,但是当重新刷新后,页面也出现暂时性空白。

究其根本,这是因为vuex中保存的数据不具有持久化,每次刷新会重建vue实例,而store是挂载是vue实例上的,所以刷新后state中的数据会被重新初始化。

解决办法

使用浏览器缓存,但这里为了简便使用vuex-persistedstate插件来实现,这个插件本质还是localstorage。附上插件介绍:vuex-persistedstate的核心功能是通过监听Vuex的mutation,将状态存储在浏览器的localStorage或sessionStorage中。当页面重新加载时,插件会从存储中恢复状态,从而实现状态的持久化。

使用步骤

1.在store实例中使用使用vuex-persistedstate,设置缓存的名称

javascript 复制代码
// 创建Store实例
export default createStore({
    //createPersistedstate()为了实现持久化,key的属性值是缓存的名称
    plugins: [new createPersistedstate({
        key: 'pz_v3pz'
    })],
    modules: {
        // 每个模块有自己的statte mutation
        menu
    }
})

2.将浏览器缓存中的值取出来还是一样用localStorage.getItem

javascript 复制代码
const localData = localStorage.getItem('pz_v3pz')
// 如果保存的持久化pz_v3pz存在 就从本地存储读取
const state = localData ? localData.menu : {
    // 展开状态
    isCollapse: false,
    // 展开的菜单
    selectMenu: [],
    routerList: [],
    menuActive: '1-1'
}

that's all

相关推荐
广州华水科技14 分钟前
单北斗GNSS在大坝形变监测中的应用与性能分析
前端
等风来不如迎风去20 分钟前
【web】页面透明、插入图片
前端
谢尔登23 分钟前
a 标签的跳转机制
前端·javascript·webpack·node.js
狂炫冰美式32 分钟前
当硅基神明撞上人类的“叹息之墙”:距离证明哥德巴赫猜想,AI还有多远?
前端·算法·架构
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于Vue的爱心公益募捐平台的设计与实现为例,包含答辩的问题和答案
前端·javascript·vue.js
IT_陈寒1 小时前
Redis实战精要:5种高频使用场景与性能优化全解析|得物技术
前端·人工智能·后端
前端小白在前进1 小时前
力扣刷题:千位分割数
javascript·算法·leetcode
Hilaku1 小时前
那个把代码写得亲妈都不认的同事,最后被劝退了🤷‍♂️
前端·javascript·代码规范
南囝coding1 小时前
Node.js 原生功能狂飙,15 个热门 npm 包要失业了
前端·后端
Dragon Wu1 小时前
TanStack Query(React Query) 常用api及操作总结
前端·javascript·前端框架