使用 Nuxt/Vuex/Vue 检测用户是否通过浏览器的后退按钮导航到路由

Detect if user navigates to route via back button of browser with Nuxt/Vuex/Vue

每当有人访问没有任何参数的页面时,我都会将一些参数推送到 nuxt 路由器 (https://router.vuejs.org/guide/essentials/navigation.html)。

示例: 有人访问:/program 它将在 /program/first-event?year=2018&month=6 结束 (首先,视图针对当前事件(因此是今年和本月的参数)过滤程序,然后从过滤的事件中将第一个事件设置为活动 post(也通过将其推送到路由器)。

这一切都很好。但是现在我发现了以下问题: 有人正在访问 /aboutus,然后导航到 /program,路由器将自动更改为 /program/url-of-event-post?year=2018&month=6。 假设用户想要返回 /aboutus,他点击浏览器后退按钮。这将使他回到:/program,它会自动再次添加 post 和参数(有效地再次向前移动一步)。

表示用户无休止地点击后退按钮。 我的方法是在用户单击后退按钮时尝试注册,如果是,我不会添加参数。但我不知道该怎么做。 我以为路由器会提供一些'from'属性,但到目前为止我没有找到任何东西

我很乐意听到一些对此的想法。提前谢谢大家。

您需要使用 router.replace.

https://router.vuejs.org/guide/essentials/navigation.html#router-replace-location-oncomplete-onabort