Vue3 后台如何做权限管理V3 Admin Vite 页面级 按钮级权限双维度方案完全指南【免费下载链接】v3-admin-vite☀️ AI-friendly Vue3 admin template | Vue Admin | Vue Template | Vue3 Admin | Vue3 Template | Vue 后台 | Vue 模板 | Vue3 后台 | Vue3 模板项目地址: https://gitcode.com/un-pany/v3-admin-vite在 Vue3 后台管理系统中权限管理几乎是每个项目绕不开的核心需求。开源项目V3 Admin Vite是一个 AI-friendly 的 Vue3 后台管理模板内置了完整的页面级权限 按钮级权限双维度权限方案页面级通过路由动态加载控制谁能进这个菜单按钮级通过v-permission指令和checkPermission函数控制谁能点这个按钮。本文带你快速看懂这套权限管理方案的完整设计。一、为什么需要双维度权限管理很多新手做 Vue3 后台权限管理时只知道用户没权限就不显示页面却忽略了页面内的按钮级控制——比如普通用户能进订单页但不能看到删除按钮。V3 Admin Vite 的权限体系分为两层维度控制目标实现方式核心文件页面级权限菜单、路由、页面访问动态路由 路由守卫src/router/guard.ts按钮级权限按钮、标签页、操作项v-permission指令 /checkPermission函数src/plugins/permission-directive.ts两层共用同一套数据源登录后从后端获取用户的roles角色数组和permissions权限标识数组统一存放在 Pinia 的 user store 中见 src/pinia/stores/user.ts。二、页面级权限动态路由如何控制菜单访问1. 常驻路由与动态路由分离项目在 src/router/index.ts 中定义了常驻路由登录页、首页、403/404 等所有用户可见的路由在 src/router/index.ts 中定义了动态路由需要角色/权限才能访问的路由。动态路由通过在路由meta中声明roles或permissions来控制访问例如meta: { title: 页面级, roles: [admin], // 角色控制 permissions: [permission:page-level] // 权限标识控制 } 规则roles和permissions满足任意一个即可访问两者都不设置则不限制访问。2. 路由守卫登录 → 拉取权限 → 注册路由整个流程在 src/router/guard.ts 中完成核心步骤如下未登录无 Token 时直接重定向到登录页带redirect参数登录后可回到原页面已登录调用userStore.getInfo()从后端获取用户的角色和权限标识过滤路由通过 src/pinia/stores/permission.ts 中的递归函数按meta.roles/meta.permissions过滤出用户可访问的动态路由动态注册调用router.addRoute(route)把有权限的路由注入 Router——没权限的菜单根本不会出现在侧边栏。permissionStore.setRoutes({ roles, permissions }) // 生成可访问路由 permissionStore.addRoutes.forEach(route router.addRoute(route)) // 注册 若项目不需要按用户区分页面可以在 src/router/config.ts 中将dynamic设为false走全量路由模式。三、按钮级权限v-permission 指令 checkPermission 函数进入页面后更细粒度的控制交给两个开箱即用的工具1. v-permission 指令一行隐藏无权限按钮指令实现在 src/plugins/permission-directive.ts原理很简单挂载时校验用户角色/权限不满足条件就直接从 DOM 中移除元素。el-button v-permission[admin]仅 admin 可见/el-button el-button v-permission[admin, editor]admin 或 editor 可见/el-button2. checkPermission 函数动态渲染场景的最佳拍档全局权限判断函数定义在 src/common/utils/permission.ts逻辑与指令一致返回boolean适合配合v-if使用el-tab-pane v-ifcheckPermission([admin]) labeladmin⚠️经验提示Element Plus 的el-tab-pane、el-table-column等动态渲染 DOM 的场景不适合用v-permission指令在mounted时才执行此时应使用v-if checkPermission替代。这一官方建议在演示页 src/pages/demo/permission/button-level.vue 中有明确说明。四、快速上手切换用户验证权限效果项目内置了权限演示页面可以零成本体验完整效果页面级演示src/pages/demo/permission/page-level.vue按钮级演示src/pages/demo/permission/button-level.vue用户切换组件src/pages/demo/permission/components/SwitchUser.vue演示页顶部提供了editor/admin两个模拟用户切换器切换后可实时看到侧边栏菜单项的显隐editor 用户看不到页面级菜单页面内按钮、标签页的显隐不同角色看到的操作按钮不同。这就是验证权限方案是否生效的最快方式——页面级管进门按钮级管动手。五、权限管理方案小结 场景推荐方案说明控制菜单/页面访问动态路由 meta.roles/meta.permissions无权限路由不注册菜单天然隐藏控制静态按钮显隐v-permission指令一行搞定直接从 DOM 移除控制动态渲染组件显隐v-if checkPermission适配el-tab-pane等特殊场景获取用户角色/权限数据登录后调用接口存入 Pinia见 src/pinia/stores/user.tsV3 Admin Vite 的这套Vue3 后台权限管理方案用动态路由 自定义指令两条腿覆盖了页面级与按钮级两种典型需求结构清晰、代码量小非常适合作为后台模板的权限落地参考。直接参考 src/router/guard.ts 和 src/plugins/permission-directive.ts 两个文件你就能在自己的 Vue3 后台项目中快速复刻同一套权限体系。【免费下载链接】v3-admin-vite☀️ AI-friendly Vue3 admin template | Vue Admin | Vue Template | Vue3 Admin | Vue3 Template | Vue 后台 | Vue 模板 | Vue3 后台 | Vue3 模板项目地址: https://gitcode.com/un-pany/v3-admin-vite创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Java大剧院订票选座系统毕业设计源码:从部署到二次开发全指南 简介:本资源为基于Java的大剧院订票选座管理系统毕业设计完整资料包,面向计算机相关专业需要完成毕业设计或课程设计的学生,以及希望积累B/S架构项目实战经验的开发者。系统采用Java语言与MySQL数据库,分为前台与后台:… · 2026/9/23 23:56:36
Apache Druid Timeseries 原生查询完全指南:查询结构、参数详解与源码级实现原理 数据库OLAP大数据后端 【免费下载链接】druid Apache Druid: a high performance real-time analytics database. 项目地址: https://gitcode.com/gh_mirrors/druid6/druid 点击查看 免费下载 Apache Druid 的 Timeseries 查询(Timeseries Query&#x… · 2026/9/23 23:56:36
OSPF高级配置实战:ENSP实验避坑与收敛优化 简介:本资源是一份面向网络工程师、运维人员及备考CCNA/HCIA认证学习者的OSPF高级配置专项教学PPT,聚焦企业网中真实部署难点。内容系统讲解NSSA区域配置与LSA7引入、地址汇总优化路由表、辅助地址跨网段通信原理与限制、虚链路构建逻辑骨干连接… · 2026/9/23 23:56:29
CodeBurn 中 OpenCode 用量追踪:数据目录解析、双代存储格式与计费路由实战指南 【免费下载链接】codeburn Free, local tool to track AI coding token usage and cost across 37 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn 项目地址: https://gitcode.com/gh_mirrors/co/cod… · 2026/9/24 0:40:04
Java服务端发丝级抠图:ONNX Runtime部署matting模型实战 简介:该资源是一套基于ONNX模型的发丝级人像抠图与背景替换Java实现源码,面向希望将深度学习模型集成到Java应用中的开发者,以及研究图像分割与高精度抠图的技术人员。项目以Java为核心语言,借助ONNX实现跨框架模型加载与推理&… · 2026/9/24 0:39:58
基于PCD小样本数据集的PCB元器件缺陷检测:YOLOv8训练与产线落地实践 简介:PCD表面元器件缺陷检测数据集面向从事工业质检、电子制造与目标检测算法实践的开发者与研究者,用于训练和验证PCB表面元器件缺陷识别模型。数据集包含超过600张标注图像,已统一处理为YOLO格式并完成数据增强,可直接用于YOLO全… · 2026/9/24 0:39:52
GFPGAN人脸修复实战:从环境配置到视频美颜调参 简介:这是一套基于Python实现的GFPGAN人脸美颜与清晰度增强工具源码,面向图像/视频处理开发者、AI视觉初学者及内容创作者,解决人脸图像与短视频的自动化美化与画质提升需求。资源共60个文件,含29个核心Python脚本(如i… · 2026/9/24 0:39:52
免费小游戏平台实测:Poki、itch.io、7k7k哪个更好玩? 很多人一到休息时间就不知道该玩点什么,正经大作玩不动,手机App又总觉得越做越重,光是安装包和注册流程就能劝退一半人。其实我一直觉得,真正适合大多数人消遣的,往往是那些打开就能玩、关掉也不心疼的免费小游戏平台。… · 2026/9/24 0:38:26
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44