vue.js - 为什么 beforeRouteLeave 从未被调用?

标签 vue.js vue-router

我对 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

最佳答案

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

<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 这有意义吗?

关于vue.js - 为什么 beforeRouteLeave 从未被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61644647/

相关文章:

javascript - Vue Router - 从 beforeEach 内部传递数据

javascript - Vue动态 map Getters

vue.js - Sublime Text 3 无法解析来自 vuejs 的符号

javascript - 如何为测试禁用 vue.js 转换?

vue.js - 在tinymce-vue组件中设置整个编辑器的高度

javascript - 如何为vue中的router-view设置观察者

javascript - 如何使用 Vue-Router 在 Vue 中设置查询参数而不重新加载组件

javascript - vue findIndex 不是函数

websocket - vuejs - 在组件之间共享 websocket 连接

vue.js - Method --> Action --> Mutation --> State issue