У меня есть SPA на Vue, с vue-router'ом и vuex'ом
Перед работой приложения хотелось бы подгрузить кучу нужных данных, которые нужны для работы приложения. Решил сделать Splash Screen как в обычных приложениях, а в фоне подгружать данные
Столкнулся с проблемой в виде работы Vue routera.
Схема приблизительно такая:
'/' - это просто "hello world" страница без логики и прочего, поэтому там данные особо не нужны
есть еще
'/login' - тут нужно ввести данные чтобы войти (тут тоже не нужны данные, но нужно проверять что человек зареган)
'/*' - остальные страницы только после подзагрузки данных + проверка авторизации
Как решал проблему:
Настроил в роуторе хук:
router.beforeEach(async function (to, from, next) {
if (!to.meta.guest && !store.getters['app/initialized']) {
await store.dispatch('app/initialize') // тут проблема в том, что появляется просто белый экран, а хотелось бы видеть загрузку
}
next()
})