但输入用户名和密码之后只显示登录成功,而并没有跳转到下一层的页面中去,请检查是不是我上面发送的其他文件里面有无错误

我们一步步像查电路一样排查你登录成功后无法跳转页面的问题

你说现在:

  • Vue 页面弹出提示“管理员登录成功”

  • 但是页面并没有跳转到 /admin 

那么说明前端的逻辑执行到了 this.$message.success('管理员登录成功'),但是没有执行或生效这一句:

this.$router.push('/admin')


✅ 第一步:排查点汇总

依次排查这几个方面:

检查项 说明 是否出错可能
✅ 后端是否成功返回用户对象? 成功返回,this.$message.success 执行了
user.isAdmin === 1 条件是否成立? 能执行管理员提示说明成立
✅ 是否成功调用了 this.$router.push('/admin') 可能没调用成功
✅ 前端 Vue 项目是否配置了 /admin 路由? 🚨 很可能没有配置好
✅ 是否有重定向阻止?(路由守卫、token校验) 若使用了路由守卫但 token 不对,可能跳不动


第二步:逐个排查关键问题

1. 是否配置了 /admin 路由?

打开router/index.js 文件,确认你有没有写:

{ path: '/admin', name: 'Admin', component: () => import('@/views/Admin.vue') }

如果没有,即使你写了 this.$router.push('/admin'),Vue 也找不到那个页面,也就不会跳转。

2. 你可能没有用 Vue Router 正常配置 SPA 路由

你现在的跳转方式是:

this.$router.push('/admin')

请检查:

3.main.js 里是否有引入 router:

import router from './router' const app = createApp(App) app.use(router)

4.页面是否放在 <router-view /> 中?

<router-view />

以上问题都排查之后,但现在跳转不到 /admin 页面,很可能是出在 路径跳转的写法和路由嵌套结构理解上。

定义了 /admin 为一个嵌套路由,它的默认子路由是:

redirect: { name: 'AdminIndex' }

所以 /admin 实际上会跳转到 /admin/AdminIndex

这是 关键点

这样虽然跳转到了 /admin,但用的是 hash 模式 (createWebHashHistory),它会跳转到 /#/admin

但如果你只跳到 /admin 而没有指定完整路径或路由名,有时在路由嵌套结构下,AdminIndex 组件不会被正确加载。

解决:

你应该跳转到命名路由 AdminIndex,这样更稳:

把跳转语句改为:

this.$router.push({ name: 'AdminIndex' })

这样跳转就会进入:

/#/admin/AdminIndex

Vue 会自动解析嵌套路由,加载 AdminHome + AdminIndex

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐