Angular поддерживает пререндеринг (pre-rendering),
позволяющий генерировать статические HTML-страницы на этапе сборки, что
ускоряет загрузку и улучшает SEO. Основным инструментом является Angular
Universal, обеспечивающий серверную генерацию контента.
Основные концепции
- Server-Side Rendering (SSR) — выполнение
Angular-приложения на сервере, генерация HTML и отправка готового
контента клиенту.
- Pre-rendering — разновидность SSR, при которой
конкретные маршруты генерируются заранее во время сборки проекта.
- Static Generation — статические страницы создаются
один раз и хранятся в виде HTML-файлов, которые сервер просто отдает при
запросе.
Настройка пререндеринга
- Установка Angular Universal:
ng add @nguniversal/express-engine
- Создание файла маршрутов для пререндеринга:
// routes.ts
export const ROUTES = [
'/',
'/about',
'/products',
];
- Запуск команды генерации статических страниц:
npm run prerender
В результате для каждого маршрута создается HTML-файл с полностью
сгенерированным контентом.
Преимущества
- Быстрая загрузка страниц за счет отсутствия необходимости ждать
выполнения Angular-приложения на клиенте.
- Улучшенное SEO, так как поисковые роботы получают готовый HTML.
- Возможность кэширования и работы в CDN без дополнительной нагрузки
на сервер.
Ограничения и особенности
- Пререндеринг подходит для статического контента; динамический
контент должен загружаться на клиенте.
- Изменения данных на сервере не обновляют заранее сгенерированные
страницы без пересборки.
- Для интерактивных компонентов необходимо корректное сочетание
prerender и client-side hydration (
ngOnInit выполняется на
клиенте после загрузки страницы).
Практическое использование
Чаще всего пререндеринг применяется для лендингов, блогов, каталогов
товаров, где контент относительно статичен. Angular Universal совместно
с пререндерингом позволяет создавать высокопроизводительные приложения с
минимальной задержкой первого отображения и полным управлением
маршрутизацией.