router.push(‘/‘)跳转不触发重定向

我来帮你分析为什么 router.push('/') 没有按照预期跳转到 /fenlei 路径。

首先让我查看相关的代码文件:

javascript 复制代码
router/index.js
  {
    path: '/',
    component: Layout,
    redirect: '/fenlei'
  },

已查看文件 index.vue 225-240

已查看文件 index.js 65-85

现在让我查看更多上下文,了解这个函数的完整逻辑:

已查看文件 index.vue 210-236

现在我明白问题所在了!让我解释一下:

问题分析

router.push('/') 没有跳转到 /fenlei 的原因是:

redirect 配置只在路由匹配时生效,而 router.push() 是编程式导航,不会触发重定向。

具体来说:

  1. 路由配置中的 redirect :在 router/index.js 中,/ 路径配置了 redirect: '/fenlei',这意味着当用户直接访问 / 时,会自动重定向到 /fenlei。

  2. router.push('/') 的行为 :在 TagsView/index.vue(file://E:\JavaProject\sxcm-relic-platform\ruoyi-ui\src\layout\components\TagsView\index.vue) 的 233 行,使用 router.push('/') 是编程式导航 ,它会直接导航到 / 路径,而不会触发路由配置中的 redirect。

  3. Vue Router 的机制 :redirect 配置只在 URL 匹配路由时自动触发,而通过 router.push()、router.replace() 等编程式导航方法调用时,如果路径已经匹配成功,就不会再触发重定向。

解决方案

有两种方式可以解决这个问题:

方案 1:直接跳转到 /fenlei(推荐)

修改 TagsView 组件,直接跳转到目标路径:

vue 复制代码
router.push('/fenlei')
相关推荐
hunter_0765 分钟前
Swift、Objective-C++ 与 Flutter 如何调用 C++:从混编接入到内存安全
前端
Java后端的Ai之路25 分钟前
前端技术Vue-13-安装webpack与vuejs
前端·vue.js·webpack
倚窗听花_25 分钟前
IIS部署前端Vue项目
前端·javascript·vue.js
yixun_gdas31 分钟前
政企网站错敏巡查:错敏都藏在哪些位置?
开发语言·前端·javascript·内容运营
小羊没烦恼!34 分钟前
.NET 11 Runtime Async 详解
java·运维·开发语言·javascript·python
Дерек的学习记录35 分钟前
Unreal Engine 5:开关门实现和流程控制
开发语言·学习·ue5
哇嘎呀37 分钟前
RHCSA题目
java·服务器·前端
周厉1 小时前
ERP系统全景解析:核心模块与业务逻辑框架
java·服务器·前端
LEE1 小时前
为什么你的 Claude Code 还在转圈等,别人的已经干完三件事了?
前端·后端·ai编程
java1234_小锋1 小时前
【技术专题】HTML5 网页技术 - HTML5 SVG
前端·html·html5