Vue JS 3中无法获取当前路由路径或名称的问题咨询
Vue Router useRoute() 始终返回 '/' 的原因及解决
常见原因与对应解决方式:
组件不在路由渲染范围内
若组件是直接静态引入(比如在App.vue里写<MyComponent/>),而非通过<router-view>渲染,useRoute()只能拿到初始路由状态,自然返回/。必须确保组件是路由匹配后通过<router-view>渲染的。路由实例未正确挂载
检查入口文件(如main.js)是否完成路由的安装:import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' import App from './App.vue' import routes from './routes' const router = createRouter({ history: createWebHistory(), routes }) const app = createApp(App) app.use(router) // 这一步必须存在,否则路由系统未激活 app.mount('#app')缺少
app.use(router)会导致路由功能失效,useRoute()无法获取正确路径。在非组件上下文调用useRoute
useRoute()是组合式API,仅能在组件的setup()函数或<script setup>中使用。如果在普通JS文件中调用,需通过导出的路由实例获取当前路由:// router/index.js export const router = createRouter({/* 配置 */}) // 其他JS文件 import { router } from './router' console.log(router.currentRoute.value.path)路由配置存在错误重定向
检查路由规则,是否所有路径都被错误重定向到/:// 错误示例:所有路由重定向到/ const routes = [ { path: '/', component: Home }, { path: '/about', redirect: '/' } ] // 正确配置 const routes = [ { path: '/', component: Home }, { path: '/about', component: About } ]
内容的提问来源于stack exchange,提问作者Rajasekar Gunasekaran
相关产品推荐
相关产品推荐

