Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Next.js: ssr, rendering

Кто выполняет рендеринг HTML при SSR?

Вопрос проверяет понимание SSR-пайплайна и разделения ответственности между сервером и браузером.

Короткий ответ

При SSR HTML формирует сервер, выполняя код приложения на серверной среде. Браузер получает готовый HTML, быстро показывает разметку, а затем загружает JavaScript и “оживляет” страницу, привязывая обработчики и состояние. Это даёт более быструю первую отрисовку и лучшее SEO, но добавляет нагрузку на сервер.

Длинный ответ

При SSR важно разделять два этапа: “сгенерировать HTML” и “сделать интерфейс интерактивным”.

1) Кто именно генерирует HTML

Определение: SSR (Server-Side Rendering) — подход, при котором HTML страницы генерируется на сервере, а не строится целиком в браузере из JavaScript.

  1. HTML рендерит сервер:

    • сервер запускает код приложения (например, рендер React-компонентов в строку HTML)

    • подставляет данные (часто полученные до рендера)

  2. Браузер на этом этапе просто получает HTML и парсит его как обычную страницу.

2) Что делает браузер после получения SSR HTML

Браузер сначала отображает страницу “как есть”, но без полноценной интерактивности.

  1. Парсит HTML, строит DOM и отображает контент.

  2. Загружает JS-бандлы приложения.

  3. Выполняет “оживление” (hydration).

Определение: Hydration — процесс, когда клиентский JavaScript “подхватывает” уже отрендеренный HTML, связывает его с компонентами и добавляет обработчики событий.

3) Почему SSR не равен “всё готово”

SSR ускоряет появление контента, но интерактивность появляется после загрузки JS.

  1. До hydration:

    • элементы видны

    • обработчики кликов/инпутов могут не работать или работать частично (зависит от фреймворка и режима)

  2. После hydration:

    • React/Next “сопоставляет” существующий DOM и виртуальное дерево

    • подключаются события, состояние, эффекты

4) Мини-пример: идея SSR + hydration

// Сервер: генерирует HTML из компонентов (условно)
const html = renderToString(<App />); // HTML строка
// Клиент: "оживляет" HTML (условно)
hydrateRoot(document.getElementById('root'), <App />);

5) Практический смысл для фронтенда

  1. Плюсы:

    • быстрее появляется контент (первая отрисовка)

    • лучше индексируется (SEO)

  2. Минусы:

    • больше работы на сервере

    • сложнее кеширование и диагностика

    • возможны ошибки несоответствия (mismatch), если сервер и клиент рендерят по-разному

Вывод: HTML при SSR рендерит сервер. Браузер затем делает hydration, чтобы страница стала интерактивной, поэтому SSR обычно даёт выигрыш в “первом показе”, но не отменяет необходимость клиентского JS.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Next.js

    Next.js

Ключевые слова

#ssr

#rendering

Подпишись на React Developer в телеграм