Я строю приложение с JWT Логин и я проверить, если пользователь вошел в систему (при посещении /), а затем я перенаправлять на панели управления:Вью маршрутизатор - Данные API не выборки на редирект
let routes = [
{ path: '', component: Login,
beforeEnter(to, from, next) {
if (auth.loggedIn()) {
next({ path: '/dashboard' });
} else {
next();
}
}
},
{ path: '/dashboard', component: Dashboard }
];
Dashboard компонент прост:
export default {
created() {
this.loadOrders();
},
methods: {
loadOrders() {
// Load Orders
}
},
watch: {
'$route': 'loadOrders'
},
}
Если я Вход, я буду перенаправлен/приборной панели и данные считываются.
Если я на панели инструментов (http://localhost:8080/dashboard
), и я ударил «обновить» в браузере, это тоже работает.
Но, если я нахожусь на этом адресе http://localhost:8080/dashboard
и я удалить панель (так что я просто цифры http://localhost:8080
) beforeEnter
видеть, что я буду заверен и перенаправить меня к/приборной панели, но данных не извлекаются (created
, mounted
и т. Д. Не называются).
Я думаю, вы должны избавиться от этого на маршруте навигации охранник 'beforeEnter()' и использовать глобальный один - 'router.beforeEach()', так что это будет вызвано на каждой навигации, но он будет находиться в ожидании до того, как все крючки будут разрешены. –
После входа в систему откройте новую вкладку, посетите «http: // localhost: 8080» и посмотрите, работает ли она. Если все в порядке, то, возможно, компонент вашей панели сохраняется или используется повторно, только первый визит вызовет 'created'. – Leo