news 2026/5/27 9:06:02

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 9:37:20

Z-Image-Turbo模型安全测试:对抗样本检测的预装工具包

Z-Image-Turbo模型安全测试:对抗样本检测的预装工具包实战指南 对抗样本攻击是当前AI安全领域的核心挑战之一。本文将介绍如何利用预配置的Z-Image-Turbo模型安全测试工具包快速搭建对抗样本检测环境,帮助AI安全工程师高效评估模型鲁棒性。这类任务通常需…

作者头像 李华
网站建设 2026/5/22 9:45:57

导师严选2026 AI论文网站TOP10:本科生毕业论文写作全攻略

导师严选2026 AI论文网站TOP10:本科生毕业论文写作全攻略 2026年AI论文写作工具测评:为何需要一份权威榜单? 在人工智能技术不断渗透学术领域的今天,AI论文写作工具已成为本科生完成毕业论文的重要辅助。然而,面对市场…

作者头像 李华
网站建设 2026/5/27 6:48:10

AI+电商:快速构建基于Z-Image-Turbo的商品图生成系统

AI电商:快速构建基于Z-Image-Turbo的商品图生成系统 在电商运营中,商品展示图的质量直接影响转化率。传统拍摄方式成本高、周期长,尤其当需要为数千种商品批量生成展示图时,AI技术成为高效解决方案。本文将介绍如何利用Z-Image-Tu…

作者头像 李华
网站建设 2026/5/27 5:35:21

AI摄影棚:基于阿里通义Z-Image-Turbo的虚拟拍摄环境搭建

AI摄影棚:基于阿里通义Z-Image-Turbo的虚拟拍摄环境搭建 对于小型视频制作团队来说,专业虚拟制作解决方案的高昂成本往往令人望而却步。本文将介绍如何利用阿里通义Z-Image-Turbo搭建一个经济高效的AI虚拟摄影棚,帮助团队快速生成逼真背景&am…

作者头像 李华
网站建设 2026/5/26 9:49:34

【std::map】判断是否存在某个键

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录1. 使用 find 方法(最常用)2. 使用 count 方法(简洁判断)3. C20 新增的 contains 方法(最直观&#xff09…

作者头像 李华