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')
相关推荐
admin and root5 小时前
「AI安全篇」实战AntiDebug自动化JS逆向加解密MCP
javascript·人工智能·网络安全·自动化·漏洞挖掘·cnvd·src赏金
落魄实习生6 小时前
Agent Scope Java 2.x 系列【7】工具使用
java·开发语言·ai
前端snow6 小时前
ai agent --- postgreSQL 关系型数据库
前端
茉莉玫瑰花茶7 小时前
GO [ 方法 ]
开发语言·后端·golang
卷无止境7 小时前
ECharts:把数据变成故事的可视化利器
前端
Eric_见嘉7 小时前
在职前端 Skill 和 MCP 分享
前端·后端·agent
狗凯之家源码网7 小时前
微博图床 PHP 系统搭建与实战应用指南
android·开发语言·php
liangshanbo12157 小时前
面试题:如何优化 Webpack 的打包速度?
前端·webpack·node.js
wengad7 小时前
从 wangEditor 迁到 wangEditor-next
前端·javascript·vue.js
乌暮9 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习