【问题标题】:How can i detect "going" to same route?我怎样才能检测到“去”到同一条路线?
【发布时间】:2020-08-19 22:11:05
【问题描述】:

如果用户再次尝试转到实际视图,我会尝试隐藏视图。创建切换效果。 例如显示/隐藏模态框。

我试过这段代码:

/* Root Instance */
const app = new Vue({
  router,
  watch: {
    '$route' (to, from) {
      if (to.path == from.path) {
        alert();
        router.go(-1);
      } else {
        alert(to.path + " != " + from.path);
      }
    }
  }
}).$mount("#app");

但是由于哈希根本没有改变,似乎 vue 路由器没有什么可路由的,例如我无法触发 if 块。

我可以将EventListener 添加到元素中,以将实际路径与目标路径进行比较并触发history.back(),但这似乎是一个糟糕的解决方案。此外,我仍然无法检测到任何其他能够进行 url 重定向的事件。

vue router 提供好的解决方案吗?

是否有任何可用的解决方案来避免手动处理所有极端情况?

【问题讨论】:

    标签: javascript vue.js vuejs2 vue-router


    【解决方案1】:

    对 $route 使用 watcher 绝对不行。您可以在组件中使用 beforeRouteEnter 方法,也可以直接在路由文件中使用 beforeRoute。在您的情况下,您将能够存储用户查看特定页面的尝试次数。根据这些数据,您可以为所欲为。

    【讨论】:

    • 导航到同一路线时根本不会触发。然后 beforeRouteEnter 不起作用。我刚试了一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2022-11-09
    • 1970-01-01
    相关资源
    最近更新 更多