vue3+router4安装配置教程:嵌套路由、动态匹配、导航守卫、外链跳转、登录认证、自动渲染组件、生成导航菜单等
Vue Router 官方文档https://router.vuejs.org/zh/introduction.html1. 安装 vue-routernpminstallvue-router2. 在src下的文件夹router下新建文件index.js、modules.jsindex.js基础配置/* src/router/index.js */import{createRouter,createWebHistory}fromvue-router;importroutesfrom./modules;// 创建路由实例constroutercreateRouter({history:createWebHistory(),// HTML5 历史模式routes,// 载入路由模块});// 全局导航守卫router.beforeEach((to,from){// 检查是否从外链携带 token 跳转而来if(to.query.token){localStorage.setItem(token,to.query.token);// 覆盖本地已有 tokenreturn{name:home,query:{},replace:true};// 跳转主页并清除参数继续导航守卫逻辑}// 检查 token 认证if(localStorage.getItem(token)){// 若已认证成功// 路由重定向if(to.namelogin){return{name:home};// 当前已登录状态却要去登录页强制跳转主页}elseif(...){return{...};// 其他重定向逻辑}else{returntrue;// 正常放行}}else{// 若未认证判断当前是否在登录页否则跳转登录if(to.name!login){return{name:login};// 避免循环跳转}else{returntrue;}}});exportdefaultrouter;modules.js路由模块/* src/router/modules.js */// import LoginView from ../views/LoginView.vue; // 若需强制优先打开的页面可以考虑‌静态导入‌exportdefault[{path:/login,// 路径会显示在浏览器 URL 中可能需要随时修改name:LoginView,// 名称推荐固定名称用于各项操作便于统一管理component:()import(../views/LoginView.vue),// 动态导入页面懒加载// component: LoginView, // 静态导入‌},{path:/,name:HomeView,component:()import(../views/HomeView.vue),redirect:{name:databoard},// 重定向非嵌套路由可以省略 component 配置// 嵌套子路由children:[{path:board,// 子路径将自动添加在上级路径后即显示为 /boardname:DataBoard,component:()import(../views/board/DataBoard.vue),// 路由元信息将任意自定义信息附加到路由上meta:{title:数据看板,// 标题icon:PieChart,// 图标requiresAuth:false,// 是否需要身份验证},},{path:user/:id,// 动态路由匹配导航时传参不同 id 都将渲染 UserCenter 页面示例/user/123name:UserCenter,component:()import(../views/user/UserCenter.vue),meta:{title:用户中心,icon:User,requiresAuth:true,},children:[{path:profile,// 匹配 /user/123/profilename:UserProfile,component:()import(../views/user/UserProfile.vue),meta:{title:个人资料,icon:,requiresAuth:true,},},{path:setting,// 匹配 /user/123/settingname:UserSetting,component:()import(../views/user/UserSetting.vue),meta:{title:账号设置,icon:,requiresAuth:true,},},],},],},// 捕获 404 Not found 路由必须书写在所有路由的最后{path:/:pathMatch(.*)*,name:NotFound,component:()import(../views/NotFound.vue),},];3. 在main.js中导入并注册路由/* src/main.js */import{createApp}fromvue;importAppfrom./App.vue;// 导入路由importrouterfrom./router;constappcreateApp(App);app.use(router);// 注册路由app.mount(#app);4. 在 vue 中渲染路由组件和对路由进行操作使用 ElementPlus 请参考我之前的文章vue3elementplussass/scss安装配置教程使用svg图标、引入外部字体、定义变量模块、修改组件样式、一键切换主题等App.vue根组件!-- src/App.vue --templaterouter-viewv-slot{ Component }transition!-- 可选在路由组件之间切换时实现过渡效果 --keep-alive!-- 可选非活跃的组件将会被缓存 --component:isComponent//keep-alive/transition/router-view/templateHomeView.vue嵌套路由上级组件!-- src/views/HomeView.vue --templatedivclasshome_view!-- 全局主菜单示例 --el-menu:default-activeactiveIndexroutertemplatev-foritem in menus:keyitem.name!-- router 模式下 index 需匹配路由 path --el-sub-menu:indexitem.pathv-ifitem.children?.filter(child child.meta.icon).lengthtemplate#titlecomponent:isitem.meta.icon/span{{ item.meta.title }}/span/templateel-menu-itemv-forchild in item.children:keychild.path:indexchild.path{{ child.meta.title }}/el-menu-item/el-sub-menuel-menu-item:indexitem.pathv-elsecomponent:isitem.meta.icon/template#title{{ item.meta.title }}/template/el-menu-item/template/el-menudivclasschild_page!-- 页面导航条示例 --el-breadcrumbel-breadcrumb-itemv-foritem in navs:keyitem.path:toitem.path{{ item.meta.title }}/el-breadcrumb-item/el-breadcrumb!-- 切换导航时若匹配到子路由其组件将渲染在这里 --router-view:key$route.path//div/div/templatescriptexportdefault{data(){return{activeIndex:this.$route.path,// 激活菜单自动匹配当前路径}},computed:{// 根据路由配置生成菜单列表menus(){// 递归整理路由树constfilterRoutes(data){constresult[]data.forEach(item{if(item.children?.length){constchildrenfilterRoutes(item.children)if(children?.length){result.push({...item,children})}}else{// 过滤需要授权但无权限的路由自定义逻辑if(!item.meta.requiresAuth||(item.meta.requiresAuthlocalStorage.getItem(item.name))){result.push(item)}}})returnresult}returnfilterRoutes(this.$router.options.routes[1].children)},// 根据路由记录生成导航列表navs(){returnthis.$route.matched.filter(itemitem.meta.title)}},watch:{// 监听路由更新$route(to,from){console.log(to,from)},// 监听路由参数变化$route.query:{handler(newVal,oldVal){console.log(newVal,oldVal)},deep:true,},},methods:{// 路由操作示例routerAction(){// 导航到路由this.$router.push({name:DataBoard})this.$router.replace({name:UserCenter})// replace 将替换历史记录this.$router.push({name:UserProfile,// 路径参数params:{id:321,// 匹配到 /user/321/profile},// 查询参数query:{page:1,// 显示为 /user/321/profile?page1},})// 返回上一个历史记录this.$router.back()this.$router.go(-1)// 获取路由数据constrouteNamethis.$route.nameconstuserIdthis.$route.params.idconstcurrentPagethis.$route.query.page},},}/script

相关新闻

零基础也能 5 步上手 dnSpy:这款 .NET 调试工具为何值得一试

零基础也能 5 步上手 dnSpy:这款 .NET 调试工具为何值得一试

零基础也能 5 步上手 dnSpy:这款 .NET 调试工具为何值得一试 【免费下载链接】dnSpy Unofficial revival of the well known .NET debugger and assembly editor, dnSpy 项目地址: https://gitcode.com/gh_mirrors/dns/dnSpy 当你面对一个没有源代码的 .NET …

2026/8/21 2:15:24 阅读更多 →
英雄联盟回放播放器 ROFL-Player:给过期的回放文件一台时间机器

英雄联盟回放播放器 ROFL-Player:给过期的回放文件一台时间机器

英雄联盟回放播放器 ROFL-Player:给过期的回放文件一台时间机器 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 你有没有在某…

2026/8/20 20:47:08 阅读更多 →
怀远网站建设哪家好:揭秘本地中小企业选择建站公司的真实内幕与避坑指南

怀远网站建设哪家好:揭秘本地中小企业选择建站公司的真实内幕与避坑指南

在如今的数字时代,拥有一个优质的官方网站对于任何一家企业来说,都不仅仅是一个展示信息的窗口,更是品牌实力的象征和获客的核心渠道。特别是对于身处安徽蚌埠怀远县的企业来说,随着互联网经济的深入渗透,越来越多的本地老板开始意识到“线上名片”的重要性。然而,当大家…

2026/8/20 12:39:44 阅读更多 →

最新新闻

FinToolBench评测基准:金融智能体如何通过工具调用与工作流应对真实挑战

FinToolBench评测基准:金融智能体如何通过工具调用与工作流应对真实挑战

1. 项目概述:当大模型遇上金融工具,一场硬核评测的诞生最近几个月,AI圈里关于“智能体”的讨论热度居高不下。从Lilian Weng那篇经典的《LLM Powered Autonomous Agents》长文,到各种开源框架的涌现,大家似乎都看到了让…

2026/8/21 11:15:00 阅读更多 →
Python模糊识别实战:从隶属函数到贴近度,构建智能分类模型

Python模糊识别实战:从隶属函数到贴近度,构建智能分类模型

1. 项目缘起:从“差不多”到“算得清”的模糊识别在工程、经济、医学乃至日常决策中,我们常常会遇到一些“边界不清”的分类问题。比如,医生判断一个病人的症状“像”哪种疾病;气象台评估明天的天气“接近”哪种天气类型&#xff…

2026/8/21 11:15:00 阅读更多 →
Java技术面试核心考点与实战解析

Java技术面试核心考点与实战解析

1. 面试场景还原与核心考察点解析"严肃面试官 vs 搞笑程序员谢飞机"这个场景在技术面试中极具代表性。面试官通常会从以下几个维度考察候选人:1.1 技术栈深度验证电商系统常用的Java技术栈中,Spring Boot和Spring Cloud是必问领域。面试官会关…

2026/8/21 11:15:00 阅读更多 →
蓝桥杯算法竞赛:从“数三角”问题掌握几何枚举与斜率优化

蓝桥杯算法竞赛:从“数三角”问题掌握几何枚举与斜率优化

1. 项目概述:从“数三角”看算法竞赛中的几何与枚举 看到“数三角”这个题目,很多参加过算法竞赛的朋友会心一笑。这听起来像是一道小学数学题,但在蓝桥杯国赛的舞台上,它绝不会是让你用眼睛去数那么简单。这道题典型地代表了算法…

2026/8/21 11:15:00 阅读更多 →
2026年免费降AI率平台怎么测?用同一难段比较五项真实能力。

2026年免费降AI率平台怎么测?用同一难段比较五项真实能力。

2026年免费降AI率平台怎么测?用同一难段比较五项真实能力。 你可能正遇到这种情况:不同平台都展示漂亮案例,但样本文本、检测范围和正式送检口径并不一致。真正的问题不是“有没有一键按钮”,而是没有把查重、AIGC检测、文本优化和…

2026/8/21 11:15:00 阅读更多 →
基于WebView2的Edge Legacy外壳:现代内核与经典界面的融合方案

基于WebView2的Edge Legacy外壳:现代内核与经典界面的融合方案

这次我们来看一个名为“Edge-Legacy 但是基于Microsoft Webview2”的项目。从名字就能看出,它的核心目标很明确:在保留经典Edge浏览器(Edge Legacy)用户界面和操作习惯的同时,将其底层渲染引擎替换为现代、高性能的Mic…

2026/8/21 11:14:00 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →