router.push(‘/‘)跳转不触发重定向
我来帮你分析为什么router.push(/)没有按照预期跳转到/fenlei路径。首先让我查看相关的代码文件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()是编程式导航不会触发重定向。具体来说路由配置中的redirect在router/index.js中/路径配置了redirect: /fenlei这意味着当用户直接访问/时会自动重定向到/fenlei。router.push(/)的行为在 [TagsView/index.vue](file://E:\JavaProject\sxcm-relic-platform\ruoyi-ui\src\layout\components\TagsView\index.vue) 的 233 行使用router.push(/)是编程式导航它会直接导航到/路径而不会触发路由配置中的redirect。Vue Router 的机制redirect配置只在 URL 匹配路由时自动触发而通过router.push()、router.replace()等编程式导航方法调用时如果路径已经匹配成功就不会再触发重定向。解决方案有两种方式可以解决这个问题方案 1直接跳转到/fenlei推荐修改 TagsView 组件直接跳转到目标路径router.push(/fenlei)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2475956.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!