Vue3中使用router.push跳转后页面没变化是怎么回事?
我在用 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;
}
beforeRouteUpdate钩子或者在组件里监听$route的变化,重新获取数据。如果不行,检查下key属性,确保每次切换路由时组件都能重新渲染。