Курсы Блог Обо мне
Статья была обновлена  

Что такое spaLoadingTemplate? 🤔

compression

Loading Template (шаблон загрузки) — предварительно созданная структура, которая используется для отображения пользователю уведомления о загрузке в одностраничном приложении (SPA). Вместо показа пустой страницы, шаблон загрузки предоставляет пользователю приятный интерфейс, который включает в себя анимированные элементы пока основная часть приложения не будет готова к отображению.

spaLoadingTemplate это специальная настройка в Nuxt которая позволяет при использовании режима клиентского рендеринга отображать индикатор загрузки до тех пор, пока приложение не будет загружено. Можно настроить индикатор загрузки, создав собственный компонент.

Начиная с версии Nuxt 3.7 этот индикатор загрузки по умолчанию отключен. Вам необходимо вручную включить его, установив spaLoadingTemplate соответствующий параметр true в nuxt.config.ts:


export default defineNuxtConfig({
  ssr: false, // Переключить в режим SPA
  spaLoadingTemplate: true, // По дефолту отключено с Nuxt 3.7
})

Необходимо создать файл spa-loading-template.html и расположить его в папке app, полный путь: ~/app/spa-loading-template.html

В нем будет описание индтикатора загрузки (просто html + css)

Файл должен содержать один HTML-элемент, который будет отображаться как индикатор загрузки.

Простой пример файла spa-loading-template.html

<div class="loader"></div>

<style>
  .loader {
    display: block;
    position: fixed;
    z-index: 1031;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 18px;
    height: 18px;
    box-sizing: border-box;
    border: solid 2px transparent;
    border-top-color: #000;
    border-left-color: #000;
    border-bottom-color: #efefef;
    border-right-color: #efefef;
    border-radius: 50%;
    -webkit-animation: loader 400ms linear infinite;
    animation: loader 400ms linear infinite;
  }

  @-webkit-keyframes loader {
    0% {
      -webkit-transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
      -webkit-transform: translate(-50%, -50%) rotate(360deg);
    }
  }

  @keyframes loader {
    0% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(360deg);
    }
  }
</style>

Заключение

Теперь вы герой 💪 Пока приложение загружается пользователь будет лицезреть красивый индикатор загрузки, а не просто белый экран 💖

frontline

FrontLine

Присоединяйтесь к нам в телеграмм

Другие интересные посты в удобном в формате

Подписаться

Еще интересное по теме