Vue.js Vue路由器:如何返回历史堆栈中的两条相同路由

Vue.js Vue路由器:如何返回历史堆栈中的两条相同路由,vue.js,vuejs2,vue-router,html5-history,Vue.js,Vuejs2,Vue Router,Html5 History,我正在使用VUE2.x 有一个帖子页面。当我点击帖子页面中的按钮时,我进入编辑页面。当我在编辑页面上单击submit时,我使用了this.$route.replace(link\u to\u post\u page)从历史堆栈中删除编辑页面,并推送post页面 所以现在我的历史堆栈中有两条相同的路径(post页面) 问题是,当我单击浏览器的“后退”按钮时,我会转到同一页,即“发布”页。对于用户来说,这是一个非常不自然的页面流,我想修复它 我已经研究了6个小时来解决这个问题,但是我没有找到解决办法

我正在使用VUE2.x

有一个帖子页面。当我点击帖子页面中的按钮时,我进入编辑页面。当我在编辑页面上单击submit时,我使用了
this.$route.replace(link\u to\u post\u page)
从历史堆栈中删除编辑页面,并推送post页面

所以现在我的历史堆栈中有两条相同的路径(post页面)

问题是,当我单击浏览器的“后退”按钮时,我会转到同一页,即“发布”页。对于用户来说,这是一个非常不自然的页面流,我想修复它

我已经研究了6个小时来解决这个问题,但是我没有找到解决办法

我的第一次尝试是使用导航卫士。但导航卫士只有在路线改变时才能工作。就我而言,路线不会改变

我还尝试使用window.history.onPopState事件侦听器,但也失败了,因为我在使用window.history.onPopState时无法操纵路由

我非常感谢你的帮助。谢谢

附言。
关于堆栈溢出最相似的问题是这个,但它根本没有回答我的问题。我检查了其他问题,但它们也没有回答我的问题。

为什么不回到历史记录中,而不是推一个新的
/edit
路线

台阶 路由堆栈
/post
['post'] ->点击“编辑”按钮
/edit
[“发布”、“编辑”] ->
this.$router.back()
/post
[“发布”、“编辑”]
我需要使网站完美,所以编辑后不应该转到
/edit
页面。所以,是的,缺点很明显。我明白了。但我找不到任何完美的解决方案。。。如果你不想让路由器甚至考虑它,你可以试着不让<代码> /Edg/<代码>页成为一个真正的页面。(改为使用查询参数?)。或者将当前的
/post
替换为
/edit
,然后再次将
/edit
替换为
/post
。我想这种双重替换会达到你想要的效果(但仍然有缺点)。是的,似乎没有完美的解决方案。但是你的想法,使/编辑不是一个真正的网页似乎是一个好主意,我可以从中得到答案。