Задать вопрос
@egorkozelskij

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

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

При переходе по router-link меняется страница (компонент-страница) и далее в течении секунды начинают постепенно подгружаться остальные компоненты - то есть я отчетливо вижу как они начинают отрисовываться. Это выглядят довольно некрасиво. Каким образом можно сделать отрисовку в фоне, а далее уже показывать пользователю полностью отрисованную страницу одним кадром?
  • Вопрос задан
  • 215 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Loftschool
    Профессия Веб-разработчик
    7 месяцев
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Avenue
    Javascript. Frontend
    5 месяцев
    Далее
  • Skillfactory
    Профессия Frontend-разработчик PRO
    14 месяцев
    Далее
  • Level UP
    Фронтенд разработчик (Junior)
    6 месяцев
    Далее
  • OTUS
    Vue.js разработчик
    4 месяца
    Далее
  • GB (GeekBrains)
    Профессия Фронтенд-разработчик
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы