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

Vue3组合式API调用useRouter、useRoute全部返回undefined问题求助

问题原因按出现概率从高到低排序:

  • 未正确注册Vue Router插件
    这是最常见的原因,你需要检查项目入口文件(一般为main.js/main.ts),是否将创建好的路由实例通过app.use(router)注册到Vue根实例上,只有完成注册后,useRouter、useRoute才能正常获取到注入的路由实例,正确示例代码:
import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 你的路由实例所在文件

const app = createApp(App)
app.use(router) // 该步骤不可省略
app.mount('#app')
  • 版本不兼容
    useRouter和useRoute是Vue Router 4.x版本专属的组合式API,仅支持Vue 3.x版本。如果你当前项目使用的是Vue 2.x + Vue Router 3.x的技术栈,原生不支持这两个API,调用会返回undefined。如果需要在Vue2环境中使用,需要额外安装@vue/composition-api插件,搭配适配版本的Vue Router使用。
  • 调用位置不满足要求
    这两个API只能在Vue组件的setup()同步执行上下文、或者组合式API的同步执行栈内调用。如果是在异步回调、普通非组件函数、路由守卫等非setup上下文中异步调用,也会返回undefined。
  • 路由实例导出异常
    检查你定义路由的文件,是否正确将createRouter创建出的路由实例默认导出,如果导出错误、或者入口文件导入的路由实例不是你创建的有效实例,也会导致相关API返回异常。

内容的提问来源于stack exchange,提问作者keizah7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:48:04