【问题标题】:Detect if user navigates to route via back button of browser with Nuxt/Vuex/Vue检测用户是否使用 Nuxt/Vuex/Vue 通过浏览器的后退按钮导航到路由
【发布时间】:2018-12-05 22:05:55
【问题描述】:

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

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

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

意味着用户被无休止地点击后退按钮所吸引。 如果用户单击后退按钮,我的方法是尝试注册,如果是这样,我不会添加参数。但我不知道该怎么做。 我以为路由器会提供一些“来自”属性,但到目前为止我没有找到任何东西。

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

【问题讨论】:

    标签: vue.js router vuex back nuxt.js


    【解决方案1】:

    【讨论】:

    • 哦,听起来不错。我会试试看。非常感谢!重要的是,在观看路由器时,这也会触发路由器更改,但我想它会并且我会在这里报告:D
    • 顺便说一句,工作就像一个魅力!
    • @Merc 你能发布你对这个问题的实际解决方案吗?
    • @podcastfan88 抱歉,我不知何故从未获悉您的帖子。我还看到有 6 个人对此感兴趣……所以多年后:this.$router.replace({ path: `/${this.page.slug}/${firstPostInFuture.slug}`, query: this.$route.query })。像这样的东西。值得一提的是:页面的 slug = program 而我有一个计算属性,可以为将来的第一个帖子返回 slug。在我的示例中,我只是复制当前查询,但如果您想要类似 year month 查询的内容,只需将它们添加到您的查询对象中即可。我希望这会有所帮助。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多