Глава 27. Server/Client компоненты и режимы рендера

Зачем эта глава

Next.js умеет рендерить страницы на сервере, на клиенте или заранее. Это влияет на скорость, SEO и пользовательский опыт.

Теория (коротко)

Server Components выполняются на сервере и не попадают в браузер.

Client Components работают в браузере и могут использовать хуки.

SSR, SSG и ISR — разные режимы генерации страниц.

Важно: по умолчанию компоненты в app router являются серверными.

Пример client-компонента

JSX
"use client";

import { useState } from "react";

export default function Counter() {
  const [count, setCount] = useState(0);
  return <button onClick={() => setCount(count + 1)}>{count}</button>;
}

Задания

Задание: компоненты

  • Создай server-компонент с данными.
  • Добавь client-компонент с кнопкой.
  • Раздели логику между ними.

Проверка себя

Ты понимаешь разницу между server и client компонентами.

Мини-проект

Цель: страница с серверным списком и клиентским фильтром.

Требования: список приходит с сервера, фильтр работает в браузере.

Критерий готовности: фильтр не ломает серверный рендер.

Словарь главы

SSR
Server-Side Rendering — рендер на сервере.
SSG
Static Site Generation — генерация страниц заранее.