【问题标题】:How to set afterEach handler in vue-router如何在 vue-router 中设置 afterEach 处理程序
【发布时间】:2017-08-18 19:35:51
【问题描述】:

我有以下脚本:

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 不是函数

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

【问题讨论】:

    标签: javascript vue.js vuejs2 vue-router


    【解决方案1】:

    您需要在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
    

    【讨论】:

    • 代码示例中的“路由器”不是实例吗?它也被定义为“从'vue-router'导入路由器”
    • Router 是类,而不是实例。我更新了我的答案以更清楚。
    • 如何在 vue 3 中做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2017-02-04
    • 2022-09-30
    • 2018-11-11
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2020-05-31
    相关资源
    最近更新 更多