0Pricing
Angular Academy · Урок

Что такое гидратация

Разберитесь, как гидратация повторно использует серверный HTML

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

Определение гидратации

Гидратация — это процесс, при котором клиентское Angular-приложение повторно использует HTML, отрисованный на сервере, добавляя обработчики событий и состояние к существующему DOM вместо его удаления и повторного рендеринга.

Жизнь без гидратации

В устаревшем SSR использовалась разрушающая гидратация: клиент удалял DOM сервера и полностью отрисовывал его заново. Это вызывало заметное мерцание и обесценивало работу сервера.

Неразрушающая гидратация

Современный Angular выполняет неразрушающую гидратацию: он обходит существующий DOM, сопоставляет его с деревом компонентов и повторно использует узлы. Нет мерцания, требуется меньше работы и повышается производительность.

Почему это улучшает показатели

Повторное использование HTML сервера означает, что самое крупное содержимое остаётся отрисованным, что помогает показателю LCP, а отсутствие повторного рендеринга предотвращает сдвиги макета, улучшая CLS. Приложение становится интерактивным без повторной отрисовки.

Двухэтапная схема

Этап первый: сервер отрисовывает HTML и отправляет его. Этап второй: браузер загружает JS, запускает Angular и гидратирует существующую разметку, делая её интерактивной.

Совпадение структуры DOM

Гидратация предполагает, что дерево компонентов клиента создаёт ту же структуру, которую создал сервер. Если структуры различаются, Angular сообщает о несоответствии при гидратации.

// NG0500: During hydration Angular expected <div> but found <span>

Распространённые причины несоответствий

Несоответствия вызывают прямая манипуляция DOM, ветви только для браузера, изменяющие разметку, некорректная вложенность HTML и недетерминированное содержимое, например Math.random() или Date.now() в шаблонах.

Как избежать ручного редактирования DOM

Не изменяйте DOM императивно, например с помощью innerHTML за пределами Angular, во время SSR. Позвольте Angular управлять DOM, чтобы клиент и сервер использовали одинаковую структуру.

Способ отключения с помощью ngSkipHydration

Если компонент действительно невозможно гидратировать, например сторонний виджет изменяет DOM, отключите для него гидратацию с помощью ngSkipHydration; Angular повторно отрендерит только это поддерево.

<app-legacy-widget ngSkipHydration></app-legacy-widget>

Для гидратации требуется SSR

Гидратация применяется только тогда, когда есть HTML, отрисованный на сервере, который можно повторно использовать. В чистом приложении CSR нечего гидратировать: гидратация — это клиентская часть SSR.

Что дальше

Гидратация может быть полной (всё приложение гидратируется при загрузке) или инкрементальной (части приложения гидратируются по требованию). Правильный выбор стратегии важен для производительности; это будет рассмотрено в следующих уроках.

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

Проверьте, насколько хорошо Вы понимаете гидратацию.

Итоги

Гидратация повторно использует HTML сервера на клиенте без разрушительных изменений, улучшая LCP и CLS. Несоответствия возникают из-за ручного изменения DOM или недетерминированной разметки; используйте ngSkipHydration как обходной путь. Гидратация — это клиентская часть SSR.

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

Урок «Что такое гидратация» бесплатный?

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

Чему я научусь в уроке «Что такое гидратация»?

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

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

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

Сколько времени занимает урок «Что такое гидратация»?

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

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

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

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

  1. Что такое гидратация
  2. Включение полной гидратации
  3. Инкрементальная гидратация с @defer
  4. Измерение основных веб-показателей
← Назад к Angular Academy