vue-pure-admin 4.0重大更新:3-4倍页面切换提速与RBAC权限重构全解析
vue-pure-admin 4.0重大更新:3-4倍页面切换提速与RBAC权限重构全解析
【免费下载链接】vue-pure-admin 项目地址: https://gitcode.com/gh_mirrors/vue/vue-pure-admin
引言:告别卡顿,拥抱丝滑体验
你是否还在为后台管理系统页面切换时的卡顿而烦恼?是否因复杂的权限配置而头疼不已?vue-pure-admin 4.0版本带着重大更新来了!本文将深入剖析4.0版本带来的3-4倍页面切换提速优化和RBAC权限系统重构,让你全面了解这些改进如何提升系统性能和开发效率。读完本文,你将能够:
- 了解vue-pure-admin 4.0版本的核心优化点
- 掌握页面切换提速的实现原理和使用方法
- 理解RBAC权限系统的重构思路和优势
- 学会在实际项目中应用这些优化和改进
一、性能飞跃:页面切换提速3-4倍
1.1 keepAlive缓存机制优化
在vue-pure-admin 4.0版本中,对keepAlive缓存机制进行了深度优化。此前版本中,当页面开启keepAlive缓存后,第一次加载并未真正缓存页面,导致页面切换时仍有明显的加载延迟。4.0版本彻底解决了这一问题,实现了页面的真正缓存。
// src/store/modules/permission.ts
export const usePermissionStore = defineStore({
id: "pure-permission",
state: () => ({
// 缓存页面keepAlive
cachePageList: []
}),
actions: {
cacheOperate({ mode, name }: cacheType) {
const delIndex = this.cachePageList.findIndex(v => v === name);
switch (mode) {
case "refresh":
this.cachePageList = this.cachePageList.filter(v => v !== name);
break;
case "add":
this.cachePageList.push(name);
break;
case "delete":
delIndex !== -1 && this.cachePageList.splice(delIndex, 1);
break;
}
// 监听缓存页面是否存在于标签页,不存在则删除
debounce(() => {
let cacheLength = this.cachePageList.length;
const nameList = getKeyList(useMultiTagsStoreHook().multiTags, "name");
while (cacheLength > 0) {
nameList.findIndex(v => v === this.cachePageList[cacheLength - 1]) ===
-1 &&
this.cachePageList.splice(
this.cachePageList.indexOf(this.cachePageList[cacheLength - 1]),
1
);
cacheLength--;
}
})();
}
}
});
1.2 包体积优化
4.0版本在包体积优化方面也做了大量工作,主要包括:
- 完全移除vxe-table,全版本整体包体积减少1.82MB
- 移除@pureadmin/components,平台包体积在未启用压缩前减少0.4MB
- 扩展本地图标的使用,首次启动全版本再次减少13个请求
这些优化使得系统的初始启动时间大幅缩短,与轻量版基本持平。
1.3 Vite4升级与构建优化
4.0版本将Vite升级到了v4版本,并使用unplugin-vue-define-options替换unplugin-vue-macros,使打包速度提升数倍。同时,对首屏加载进行了极大优化,与3.9.0版本之前相比,首屏请求减少71个,首屏加载资源减少近300KB。
1.4 性能对比
为了直观展示4.0版本的性能提升,我们进行了页面切换时间的对比测试:
| 版本 | 平均页面切换时间 | 提升倍数 |
|---|---|---|
| 3.x | 300-400ms | 1x |
| 4.0 | 75-100ms | 3-4x |
从测试结果可以看出,4.0版本的页面切换速度实现了3-4倍的提升,带来了前所未有的丝滑体验。
二、RBAC权限系统重构
2.1 RBAC权限模型简介
RBAC(Role-Based Access Control,基于角色的访问控制)是一种广泛应用的权限管理模型。它通过将权限分配给角色,再将角色分配给用户,实现了权限的灵活管理和细粒度控制。
2.2 权限系统核心实现
在vue-pure-admin 4.0中,权限系统的核心实现位于src/store/modules/permission.ts文件中。通过使用Pinia状态管理库,实现了权限的动态加载和管理。
// src/store/modules/permission.ts
import { defineStore } from "pinia";
import {
type cacheType,
store,
debounce,
ascending,
getKeyList,
filterTree,
constantMenus,
filterNoPermissionTree,
formatFlatteningRoutes
} from "../utils";
import { useMultiTagsStoreHook } from "./multiTags";
export const usePermissionStore = defineStore({
id: "pure-permission",
state: () => ({
// 静态路由生成的菜单
constantMenus,
// 整体路由生成的菜单(静态、动态)
wholeMenus: [],
// 整体路由(一维数组格式)
flatteningRoutes: [],
// 缓存页面keepAlive
cachePageList: []
}),
actions: {
/** 组装整体路由生成的菜单 */
handleWholeMenus(routes: any[]) {
this.wholeMenus = filterNoPermissionTree(
filterTree(ascending(this.constantMenus.concat(routes)))
);
this.flatteningRoutes = formatFlatteningRoutes(
this.constantMenus.concat(routes)
);
}
}
});
2.3 权限过滤与路由生成
权限系统通过filterNoPermissionTree函数实现了基于用户权限的菜单过滤,确保用户只能看到其有权访问的菜单。
// 过滤没有权限的路由菜单
this.wholeMenus = filterNoPermissionTree(
filterTree(ascending(this.constantMenus.concat(routes)))
);
同时,通过formatFlatteningRoutes函数将嵌套的路由结构转换为一维数组格式,方便进行路由的管理和操作。
2.4 权限系统优势
4.0版本的RBAC权限系统重构带来了以下优势:
- 更细粒度的权限控制:支持页面级、按钮级的权限控制
- 动态权限加载:根据用户角色动态生成可访问路由和菜单
- 优化的权限校验性能:减少不必要的权限判断,提升系统响应速度
- 更好的可扩展性:便于添加新的权限规则和权限类型
三、其他重要更新
3.1 技术栈升级
vue-pure-admin 4.0版本对主要技术栈进行了全面升级:
- 升级Vite到v4版本
- 升级pnpm到v9版本,要求pnpm版本>=9
- 升级stylelint到16版本,并遵循esm语法
- 升级axios到最新版本
- 更新@pureadmin/theme到最新版本,带来更友好的类型提示
3.2 新功能添加
4.0版本还添加了一些实用的新功能:
- 项目版本实时更新检测功能
- 视频帧拦截 - WebAssembly版本,支持MP4、MOV、AVI、WebM、MKV等主流格式
3.3 开发体验优化
为了提升开发体验,4.0版本做了以下优化:
- 完全ESM版本,提升模块加载效率
- 更友好的类型提示,减少开发过程中的类型错误
- 修复了tailwindcss最新版本中collapse属性与平台class类名冲突的问题
四、升级指南
4.1 环境要求
升级到vue-pure-admin 4.0版本需要满足以下环境要求:
- Node.js版本>18.18.0
- pnpm版本>=8.6.10
4.2 升级步骤
- 克隆最新代码:
git clone https://gitcode.com/gh_mirrors/vue/vue-pure-admin.git
- 安装依赖:
cd vue-pure-admin
pnpm install
- 启动开发服务器:
pnpm dev
- 构建生产版本:
pnpm build
4.3 注意事项
- 文档站点和完整版预览站点的地址已变更
- 如果你使用了VITE_PUBLIC_PATH为url的OSS场景,需要升级@pureadin/theme到最新版本
- 系统管理中的所有表格均改为自适应内容区域高度,需要升级@pureadmin/table到最新版本
五、总结与展望
vue-pure-admin 4.0版本通过对keepAlive缓存机制的优化、包体积的精简、构建工具的升级等手段,实现了3-4倍的页面切换提速,极大提升了用户体验。同时,RBAC权限系统的重构使得权限管理更加灵活和高效。
未来,vue-pure-admin将继续关注性能优化和功能增强,为开发者提供更优质的后台管理系统解决方案。我们计划在后续版本中引入更多先进的前端技术和最佳实践,如更完善的微前端支持、更强大的可视化组件等。
如果你觉得vue-pure-admin对你的项目有帮助,请点赞、收藏、关注三连,也欢迎在评论区留下你的使用体验和建议。让我们一起打造更好的前端开发体验!
下期预告:vue-pure-admin高级特性详解 - 从入门到精通
【免费下载链接】vue-pure-admin 项目地址: https://gitcode.com/gh_mirrors/vue/vue-pure-admin
更多推荐



所有评论(0)