useRouter一定要放在setup方法内的顶层,否则作用域改变useRouter()执行返回的是undefined。

正确使用

<script setup>
import { useRouter } from 'vue-router';
const router = useRouter();
const toLogin = () => {
    router.push({ name: 'login' });
};
</script>

错误使用

<script setup>
import { useRouter } from 'vue-router';
const toLogin = () => {
	const router = useRouter(); //router为 undefine
    router.push({ name: 'login' });
};
</script>

如果需要在其他js文件的非setup中使用路由对象,可以直接引用createRouter()创建的路由对象。

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐