Я пытаюсь следовать инструкциям, изложенным здесь: https://github.com/vuejs/vue-class-component#adding-custom-hooks
Я не получаю никаких ошибок, но beforeRouteEnter
не срабатывает. Я не вижу ни одной из строк вывода консоли.
Как ни странно, если я вставлю beforeEnter
на мой маршрутизатор, hello
будет печатать, но не hi
.
Пример кода ниже.
Класс-компонентный-hooks.ts
import { Component } from 'vue-property-decorator';
// Register the router hooks with their names
Component.registerHooks([
'beforeRouteEnter',
'beforeRouteLeave',
'beforeRouteUpdate', // for vue-router 2.2+
]);
main.ts
import './class-component-hooks';
import Vue from 'vue';
import App from './App.vue';
import router from './router';
...
some_component.ts
import { Component, Watch, Vue } from 'vue-property-decorator';
@Component({
...
beforeRouteEnter(to: any, from: any, next: (arg0: (vm: any) => void) => void) {
console.log('hello');
next((vm) => {
// access to component instance via `vm`
console.log('hi');
});
}
})
...
Сценарий, где он частично срабатывает:
router.ts
{
path: '/a_route',
component: () => import(/* webpackChunkName: "a_route" */ './a_route.vue'),
beforeEnter: (to: any, from: any, next: (arg0: (vm: any) => void) => void) => {
console.log('hello');
next((vm) => {
// access to component instance via `vm`
console.log('hi');
});
},
},