You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:19:59