@egorkozelskij

Как отобразить уже отрисованную страницу после смены роута vue router 2?

Здравствуйте!

При переходе по router-link меняется страница (компонент-страница) и далее в течении секунды начинают постепенно подгружаться остальные компоненты - то есть я отчетливо вижу как они начинают отрисовываться. Это выглядят довольно некрасиво. Каким образом можно сделать отрисовку в фоне, а далее уже показывать пользователю полностью отрисованную страницу одним кадром?
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
Добавить префетч на асинхронные импорты (иногда (не всегда) целесообразно вообще их убрать)
component: () => import(/* webpackPrefetch: true */ 'path/to/component')
сделать так, чтобы данные для компонентов получались не в created/mounted, а раньше, например сильно заранее и хранились в vuex и/или пока получаются данные - отображались скелеты или экран загрузки со спиннером.
Ответ написан
@frankieksai
Можно всю страницу добавить в блок else, а v-if поставить лоадер с boolean флагом. И по какому-нибудь условию менять этот флаг.
<template>
<div v-if="loader">
<span>loading...</span>
</div>
<div v-else>
<!--- тут ваша страница --->
</div>
</template>

А уже в компоненте флаг менять в created, mounted или по таймеру или nexttick
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы