【问题标题】:Why is beforeLeaveRoute never called?为什么从不调用 beforeLeaveRoute?
【发布时间】:2020-08-21 23:21:48
【问题描述】:

我对 beforeLeaveRoute 应该如何在 VueRouter 中工作感到困惑。触发器永远不会被调用。这是我的代码:

src/App.vue

<template>
      <router-view/>
</template>
<script>
export default {
 name: 'App',
};
</script>

src/router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import PageOne from '../views/PageOne'
import PageTwo from '../views/PageTwo'

Vue.use(VueRouter)

export default new VueRouter({
  routes: [
    {
      path: '/pageone',
      name: 'pageone',
      component: PageOne,
    },
    {
      path: '/pagetwo',
      name: 'pagetwo',
      component: PageTwo,
    },
  ]
})

src/views/PageOne.vue

<template>
    <router-link to="/turbines">Go to page two</router-link>
</template>

<script>
export default {
    name: 'PageOne',
    beforeRouteLeave (to, from, next) {
        console.log("beforeLeaveRoute PageOne");
    },
}
</script>

src/views/PageTwo.vue

<template>
  <router-link to="/towers">Go to page one</router-link>
</template>

<script>
export default {
    name: 'PageTwo',
    beforeRouteLeave (to, from, next) {
        console.log("beforeLeaveRoute PageTwo");
    }
}
</script>

代码无提示地失败,没有错误。链接有效,页面从第一页导航到第二页并在单击时返回,但是我没有从 beforeLeaveRoute 触发器中获得控制台日志,并且无法通过调用 next 来控制路线的离开。

使用:vue 2.6.10 和 vue-router 3.1.3

【问题讨论】:

  • 我觉得你打错了,应该是beforeRouteLeave而不是beforeLeaveRoute
  • 我修正了错字。我在不同的尝试之间来回修复它并将错误的复制到 StackOverflow。可悲的是,这不是问题。我已经更新了帖子中的代码以反映当前版本。行为是一样的。

标签: vue.js vue-router


【解决方案1】:

我认为你在编写代码时弄错了

<template>
  <router-link to="/towers">Go to page one</router-link>
</template>

<script>
export default {
    name: 'PageTwo',
    beforeRouteLeave(to, from, next) {  //check here
        console.log("beforeLeaveRoute PageTwo");
    }
}
</script>

你不能写beforeLeaveRoute,而是你必须写beforeRouteLeave 这有意义吗?

【讨论】:

  • 你是对的,我拼错了标识符。在我的示例中,我尝试了多种不同的方法。可悲的是,即使有修复,行为也是一样的。我已经编辑了原始帖子。
  • 你还有同样的问题吗?
猜你喜欢
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2019-03-08
  • 2010-12-13
  • 2019-11-22
相关资源
最近更新 更多