I'm building an application with JWT Login and i check if the user is logged in (when visit /) and then i redirect to Dashboard:
let routes = [
{ path: '', component: Login,
beforeEnter(to, from, next) {
if (auth.loggedIn()) {
next({ path: '/dashboard' });
} else {
next();
}
}
},
{ path: '/dashboard', component: Dashboard }
];
The Dashboard component is simple:
export default {
created() {
this.loadOrders();
},
methods: {
loadOrders() {
// Load Orders
}
},
watch: {
'$route': 'loadOrders'
},
}
If i Login, i will be redirected to /dashboard and the data is fetched.
If i'm on Dashboard (http://localhost:8080/dashboard
) and i hit "refresh" on browser, this works too.
But, if i'm on this url http://localhost:8080/dashboard
and i delete dashboard (so i just digit http://localhost:8080
) the beforeEnter
see that i'm authenticated and redirect me to /dashboard, but the data is not fetched (created
, mounted
etc are not called).
beforeEnter()
and use the global one -router.beforeEach()
, so It would be triggered on each navigation, but it would be on pending before all hooks has been resolved. – Belmin Bedak Jan 21 at 15:38http://localhost:8080
and see if it works. If it's OK, then maybe your dashboard component is kept alive or reused, only the first visit will triggercreated
. – Leo Jan 23 at 7:34