Vue3中使用router.push跳转后页面没变化是怎么回事?

程序员小敏 阅读 3

我在用 Vue3 + Vue Router 做一个后台管理页面,点击按钮想通过编程式导航跳转到 /dashboard,但调用 router.push('/dashboard') 后 URL 变了,页面内容却没更新,还是停留在当前组件。我确认路由配置是对的,其他链接用 <router-link> 能正常跳转。

试过加 await、用 replace、甚至强制刷新,都不行。控制台也没报错。是不是跟组件复用有关?但我的两个页面是完全不同的组件啊……

顺便贴一下相关路由样式,虽然可能不相关,但以防万一:

.page-container {
  padding: 20px;
  background: #f8f9fa;
}
.dashboard-view {
  color: #333;
  font-size: 18px;
}
我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
百里沁仪
你这个问题可能是组件复用导致的。在路由配置里加上 beforeRouteUpdate 钩子或者在组件里监听 $route 的变化,重新获取数据。如果不行,检查下 key 属性,确保每次切换路由时组件都能重新渲染。
点赞
2026-03-21 17:20