Vue3使用脚本设置,如何访问this.$router.push()

Jos*_*son 14 vuejs3 vue-router4 vue-script-setup

我是 Vue3 的新手,正在努力处理一些示例。我有一个简单的登录组件,应该重定向到另一个页面,但事实并非如此。

这是我的模板:

在此输入图像描述

这是我的脚本:

在此输入图像描述

问题是 this.$router 不可用,因为 this 未定义。我能找到的所有示例都使用此编码模式,但据我所知,此变量在脚本设置编码模式中未定义。还有什么选择呢?

谢谢。

mat*_*deo 25

首先useRouter从 vue-router 导入可组合项,然后使用router访问method.

import { useRouter } from 'vue-router';
const router = useRouter()

function login() { 
  router.push({ path: 'your-path-here' })
}
Run Code Online (Sandbox Code Playgroud)

这相当于 Options API 的this.$router.push.

  • 在 NuxtJs 应用程序上工作,面临同样的问题并尝试了此解决方案,但在控制台中出现以下错误:“[Vue warn]:inject() 只能在 setup() 或功能组件内部使用。” (3认同)