我有以下顺序发生:
主屏幕
载入画面
结果屏幕
在主页上,当有人点击一个按钮时,我将他们发送到加载屏幕,通过:
this.$router.push({path: "/loading"});
一旦他们的任务完成,他们将通过以下方式发送到结果屏幕
this.$router.push({path: "/results/xxxx"});
问题是,通常他们想从结果返回到主屏幕,但是当他们点击返回时,他们又被发送到加载,这又将他们发送回结果,所以他们陷入了无限循环并且无法继续回到主屏幕。
任何想法如何解决这一问题?如果有这样的选项,我非常希望:
this.$router.push({path: "/loading", addToHistory: false});
这会将它们发送到路线而不将其添加到历史记录中。
原文由 Ali 发布,翻译遵循 CC BY-SA 4.0 许可协议
有一个完美的方法来处理这种情况
您可以使用 组件内保护 来控制颗粒级别的路由
在您的代码中进行以下更改
在主屏幕组件中
在加载屏幕组件中
在结果屏幕组件中
我刚刚创建了一个小的 vue 应用程序来重现同样的问题。根据您的问题,它在我的本地工作。希望它也能 解决您的问题。