当前位置: 首页 > news >正文

Vue——路由与导航篇之 路由设计

Vue3 + Vite 项目技术博客 - 路由与导航篇

技术栈与环境

  • 前端框架: Vue 3.2+
  • 路由管理: Vue Router 4+
  • 构建工具: Vite 4+
  • UI 组件库: Element Plus
  • 状态管理: Pinia 2+
  • 开发语言: JavaScript/ES6+
  • 运行环境: Node.js 16+
  • HTTP 客户端: Axios (用于权限验证等)

背景问题:
需要实现单页面应用的路由管理。

方案思考:
使用 Vue Router 4+ 进行路由配置和管理。

具体实现:

// router/index.jsimport{createRouter,createWebHistory}from'vue-router'importLayoutfrom'@/layout/index.vue'// 静态路由 - 不需要权限的路由exportconstconstantRoutes=[{path:'/login',name:'Login',component:()=>import('@/views/login/index.vue'),meta:{title:'登录'}},{path:'/404',name:'NotFound',component:()=>import('@/views/error/404.vue'),meta:{title:'页面不存在'}},{path:'/',component:Layout,redirect:'/dashboard',children:[{path:'dashboard',name:'Dashboard',component:()=>import('@/views/dashboard/index.vue'),meta:{title:'首页',icon:'House'}}]}]// 异步路由 - 需要权限的路由exportconstasyncRoutes=[{path:'/user',component:Layout,redirect:'/user/list',meta:{title:'用户管理',icon:'User',roles:['admin']},children:[{path:'list',name:'UserList',component:()=>import('@/views/user/list.vue'),meta:{title:'用户列表',roles:['admin']}},{path:'add',name:'UserAdd',component:()=>import('@/views/user/add.vue'),meta:{title:'添加用户',roles:['admin']}}]}]constrouter=createRouter({history:createWebHistory(),routes:constantRoutes,scrollBehavior:()=>({left:0,top:0})})exportdefaultrouter

路由配置工具:

// utils/router.js// 动态路由处理工具exportclassRouterUtils{// 根据角色过滤路由staticfilterRoutes(routes,roles){constres=[]routes.forEach(route=>{consttmp={...route}if(hasPermission(roles,tmp)){if(tmp.children){tmp.children=this.filterRoutes(tmp.children,roles)}res.push(tmp)}})returnres}// 检查路由权限statichasPermission(roles,route){if(route.meta&&route.meta.roles){returnroles.some(role=>route.meta.roles.includes(role))}else{returntrue}}// 获取路由参数staticgetRouteParams(route){return{path:route.path,name:route.name,meta:route.meta,query:route.query,params:route.params}}}
http://www.jsqmd.com/news/216740/

相关文章:

  • 教学实践:如何用云端GPU为学生快速部署Z-Image-Turbo实验环境
  • Z-Image-Turbo模型安全测试:对抗样本检测的预装工具包
  • Z-Image-Turbo模型微调实战:预配置GPU环境下的LoRA训练指南
  • 稀土抑烟剂在船舶中的应用:提升航行安全与环保
  • JVM垃圾回收器Serial、ParNew、Parallel Scavenge 与 Parallel Old
  • Net Tools v1.1.2:一站式 Windows 网络运维工具箱
  • LongVideoAgent:多智能体推理与长视频
  • 突破性能极限:如何用Z-Image-Turbo预置镜像实现2K高清输出
  • 游戏开发者的秘密武器:快速集成Z-Image-Turbo角色概念生成
  • 多地布局:直线模组与直线电机服务团队如何覆盖全国
  • AI辅助漫画创作:Z-Image-Turbo分镜生成专用环境搭建指南
  • C语言float转十六进制
  • 冥想第一千七百五十六天(1756)
  • AI艺术展:用Z-Image-Turbo快速生成系列主题作品的策展指南
  • Z-Image-Turbo模型压测全攻略:预装监控工具的云端测试环境
  • 国内网络准入系统排行榜你知道吗?2025六大主流网络准入系统推荐
  • 游戏开发捷径:用阿里通义Z-Image-Turbo快速生成角色概念图
  • Java企业级风控实战:对接天远多头借贷行业风险版API构建信贷评分引擎
  • 图吧工具箱 V 2026.01:专业硬件检测工具
  • Z-Image-Turbo模型剖析:免搭建的云端实验环境带你深入理解
  • 冥想第一千七百五十七天(1757)
  • 跨平台开发方案:在Unity中集成Z-Image-Turbo图像生成功能
  • 阿里通义Z-Image-Turbo WebUI扩展开发:快速添加自定义功能
  • 冥想第一千七百五十八天(1758)
  • 10分钟玩转阿里通义Z-Image-Turbo:零基础搭建你的AI绘画工坊
  • 【学习笔记】《道德经》第63章
  • 【std::map】遍历方式汇总
  • Z-Image-Turbo多版本管理:一键切换不同模型配置的云端方案
  • 揭秘AI造相:如何用云端GPU快速体验Z-Image-Turbo的魔力
  • 如何解决 pip install 网络报错 ERROR: Could not find a version that satisfies the requirement requests