vue,返回键,返回跳过上两个路由的页面,要如何实现?

发布于 2022-09-13 00:48:12 字数 374 浏览 8 评论 0

比如:

页面A(新建按钮)->选择类型->编辑表单->表单详情(点击返回键,返回详情页A)

页面B->表单详情(修改按钮)->选择类型->编辑表单->表单详情(点击返回键,返回页面B)

我知道用 this.$router.replace 可以实现大概的原理,但是我希望同时在编辑表单的时候,点击返回键也能成功返回选择类型,这就很难用这个方法了

以上两种情况,要如何设计路由的返回方法来实现呢?

同理,其实也类似淘宝、拼多多等购物平台,从详情页到生成订单页,中间可能经历了多个页面,但最终订单页点击返回,都是会直接返回到详情页。很想知道这一类的设计原理如果要用vue写的H5页面,要如何实现最为便捷且通用呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

李白 2022-09-20 00:48:12

image.png

监听一下从D返回C 的事件吧,在路由守卫判断一下,如果是从 D返回C,就额外多back一层

如果同时页面上还存在直接从 A到C 的逻辑,导致没法判断是返回还是前进的话,可以尝试把整个路由栈都记录下来,再来判断。

或者也可以通过replace,但是 B->C 之后,从 C->B 的,引导用户从UI上面直接点击,让你replace回去,而不是用浏览器的返回,这样会比较好处理一点,推荐这样做。

另外还有一些幺蛾子操作就是把 B C 放到Iframe 里面,从 A->B 通过push, C->D 通过replace, B->C 两个页面都在 iframe 内部进行跳转,就可以正常跳回去。
不推荐这种操作,容易玩废

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文