Отложенная загрузка с помощью @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 — локальная установка не требуется.
Все уроки этого курса
- Условный вывод с помощью @if
- Циклы с помощью @for
- Переключение с помощью @switch
- Отложенная загрузка с помощью @defer