我现在在第二个项目中遇到了这个问题,所以这不是一个情境错误。
我这样使用路由器:
<router-view v-slot="{ Component }">
<transition name='fade' mode="out-in">
<component :is="Component"></component>
</transition>
</router-view>
在这个特定的项目中,这是一个使用 Vuex 等的分步入职过程。您停留在页面上,填写一些表格并按下一个执行一些异步调用的按钮,然后this.$router.push({name: 'AnotherRoute'});
然而:
当我尝试执行以下操作之一时 - 有一些代码mounted
或created
检查某些内容并将路由器推送到另一条路由,URL 会更改,但组件实际上从未加载 - 只有一个空白屏幕。
新 Route的created
or mounted
webhook 永远不会执行。如果我刷新页面,新路由的组件就在那里。
如果我删除过渡或将其设为 an in-out
,即使使用 fast ,它也会再次开始工作push
。所以问题出在某个地方。
看起来路由器推送发生得太早了。在我将路由器推送到另一条路线之前,我需要做些什么吗?