javascript - 如何在 vue-router 中设置 afterEach 处理程序

标签 javascript vue.js vuejs2 vue-router

我有以下脚本:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  scrollBehavior (to, from, savedPosition) {
    // purposely left blank
  },
  routes: [
    {
      path: "/",
      component: SampleComponent
    }
  ]
}

我想向路由器添加一个 afterEach 处理程序,这样我就可以在获取路由器链接时关闭所有打开的菜单。

我试图将它添加到构造函数中,但它不是构造函数参数。

我也试过:

Router.afterEach((to, from) => {
  // ...
})

但是我得到一个错误:

afterEach is not a function

如何使用此设置适本地添加 afterEach 回调?

最佳答案

您需要在 Router 实例(通过 new Router() 返回的对象)上设置 afterEach 处理程序。

您可以设置对实例的引用,并在导出之前向其添加 afterEach 处理程序:

const router = new Router({
  scrollBehavior (to, from, savedPosition) {
    // purposely left blank
  },
  routes: [
    {
      path: "/",
      component: SampleComponent
    }
  ]
});

router.afterEach((to, from) => {
  // ...
});

export default router

关于javascript - 如何在 vue-router 中设置 afterEach 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763906/

相关文章:

javascript - 如何将来自 axios 调用的图像显示到 Vuejs img 元素中?我没看到任何有用的东西

javascript - 将内容插入数组 Javascript

javascript - 为什么我的 Flot y 轴标 checkout 现在轴上? JQM

javascript - 令人费解的正则表达式匹配怪异

javascript - HighCharts - 数据点未出现

javascript - 你如何在 Vue 中条件绑定(bind) v-model?

vue.js - 更改 axios 响应架构

javascript - vue-svg-loader 在加载 SVG 时删除一些 <g> 标签

vuejs2 - 在 Vuex 中的对象数组上使用 v-bind

events - Vuejs 设置事件总线