У меня есть следующий скрипт:
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
вызов afterEach
с этой настройкой?
Вам нужно установить обработчик 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
Router
- это класс, а не экземпляр. Я обновил свой ответ, чтобы быть более понятным.