0Pricing
Angular Academy · Урок

Отложенная загрузка с помощью @defer

Загружайте части шаблона по требованию с помощью @defer.

«Отложенная загрузка с помощью @defer» — бесплатный урок Angular Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Angular Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Angular Academy содержит 4 уроков всего.

Отложенная загрузка с defer

Блок at-defer отложенно загружает часть шаблона и его зависимости, повышая производительность первоначальной загрузки. Отложенное содержимое выделяется в отдельный фрагмент.

Базовый синтаксис defer

Поместите содержимое в блок at-defer. По умолчанию оно загружается, когда браузер простаивает.

// @defer {
//   <app-heavy-chart></app-heavy-chart>
// }

Зачем нужен defer

Откладывание тяжёлых компонентов или компонентов, расположенных ниже области просмотра, сохраняет первоначальный пакет небольшим и ускоряет первую отрисовку. Компонент загружается только тогда, когда он действительно нужен.

Блок placeholder

Блок заполнителя показывает содержимое до срабатывания отложенного блока.

// @defer {
//   <app-comments></app-comments>
// } @placeholder {
//   <p>Comments will load soon</p>
// }

Блок загрузки

Блок загрузки отображается во время загрузки отложенного фрагмента.

// @defer {
//   <app-comments></app-comments>
// } @loading {
//   <p>Loading comments...</p>
// }

Блок ошибки

Блок ошибки отображается, если загрузить отложенные зависимости не удалось.

// @defer {
//   <app-comments></app-comments>
// } @error {
//   <p>Failed to load comments</p>
// }

Триггеры

Вы управляете началом загрузки с помощью триггеров в предложении on, например при простое, при появлении в области просмотра, при взаимодействии, при наведении или по таймеру.

// @defer (on viewport) {
//   <app-chart></app-chart>
// }

При появлении в области просмотра

Триггер при появлении в области просмотра загружает содержимое, когда оно прокручивается в видимую область. Это особенно удобно для разделов, расположенных ниже начальной области страницы.

При взаимодействии и при наведении

При взаимодействии содержимое загружается, когда пользователь нажимает на заполнитель или переводит на него фокус; при наведении содержимое загружается, когда указатель находится над ним.

// @defer (on interaction) {
//   <app-editor></app-editor>
// } @placeholder {
//   <button>Open editor</button>
// }

Условие when

Вы также можете запускать загрузку по логическому выражению с помощью when: загрузка начнётся, когда выражение станет истинным.

// @defer (when shouldLoad()) {
//   <app-details></app-details>
// }

Предварительная загрузка

Вы можете предварительно загрузить отложенный фрагмент отдельно от его отображения, например выполнить предварительную загрузку при простое, чтобы фрагмент был готов до срабатывания триггера отображения.

// @defer (on viewport; prefetch on idle) {
//   <app-chart></app-chart>
// }

Быстрая проверка: defer

Запуск отложенного содержимого.

Итоги: отложенная загрузка

Вы изучили блок at-defer для отложенной загрузки, а также блоки at-placeholder, at-loading и at-error и такие триггеры, как on idle, on viewport, on interaction, on hover, on timer и when, включая предварительную загрузку. Вы завершили курс «Встроенное управление потоком».

Часто задаваемые вопросы

Урок «Отложенная загрузка с помощью @defer» бесплатный?

Да — полный текст урока «Отложенная загрузка с помощью @defer» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Angular Academy, подпишись на CoddyKit PRO. Курс Angular Academy содержит 4 уроков всего.

Чему я научусь в уроке «Отложенная загрузка с помощью @defer»?

Загружайте части шаблона по требованию с помощью @defer. Ты практикуешь Angular Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Angular Academy?

Предыдущий опыт не требуется. Angular Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Отложенная загрузка с помощью @defer»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Angular Academy?

Да. Каждый урок Angular Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Условный вывод с помощью @if
  2. Циклы с помощью @for
  3. Переключение с помощью @switch
  4. Отложенная загрузка с помощью @defer
← Назад к Angular Academy