Skip to main content

Що таке гібридний рендеринг у Next.js?

Гібридний рендеринг у Next.js - це підхід, при якому одна й та сама сторінка поєднує кілька стратегій рендерингу: серверні компоненти, клієнтські компоненти, статичну генерацію та динамічний рендеринг.

Простіше кажучи: Next.js дозволяє гнучко обирати, де і як рендерити кожну частину застосунку, а не використовувати один спосіб для всього.


Коротке визначення (для співбесіди)

Гібридний рендеринг - це можливість Next.js:

  • рендерити частину сторінки на сервері
  • частину - у браузері
  • частину - заздалегідь (static)
  • частину - за запитом (dynamic)

і все це в межах однієї сторінки.


Як це виглядає концептуально

https://h8dxkfmaphn8o0p3.public.blob.vercel-storage.com/learn/pages-router/data-fetching/server-side-rendering.png
https://h8dxkfmaphn8o0p3.public.blob.vercel-storage.com/learn/pages-router/data-fetching/server-side-rendering.png
https://nextjs.org/_next/image?q=75&url=https%3A%2F%2Fh8DxKfmAPhn8O0p3.public.blob.vercel-storage.com%2Flearn%2Flight%2Flearn-client-server-modules.png&w=3840
https://nextjs.org/_next/image?q=75&url=https%3A%2F%2Fh8DxKfmAPhn8O0p3.public.blob.vercel-storage.com%2Flearn%2Flight%2Flearn-client-server-modules.png&w=3840
https://miro.medium.com/v2/resize%3Afit%3A1400/1%2AcKzjyFZerA-VKa8IueCYHA.png
https://miro.medium.com/v2/resize%3Afit%3A1400/1%2AcKzjyFZerA-VKa8IueCYHA.png

Одна сторінка може складатися з:

  • серверного layout'а
  • серверного компонента з даними
  • клієнтського компонента для інтерактивності

Простий приклад гібридної сторінки

tsx
// Server Component (page.tsx) import Counter from './Counter' export default async function Page() { const products = await getProducts() return ( <> <h1>Products</h1> <ProductList products={products} /> <Counter /> </> ) }
tsx
// Client Component 'use client' import { useState } from 'react' export default function Counter() { const [count, setCount] = useState(0) return <button onClick={() => setCount(count + 1)}>{count}</button> }
  • дані та список - сервер
  • лічильник - клієнт
  • користувач отримує готовий HTML + мінімальний JS

Які підходи входять у гібридний рендеринг

1. Серверні та клієнтські компоненти

  • Server Components - дані та структура
  • Client Components - інтерактивність

2. Статична генерація (SSG)

Сторінка генерується на етапі білда.

Підходить для:

  • блогів
  • лендингів
  • документації
ts
export const revalidate = 60

3. Динамічний рендеринг (SSR)

HTML створюється на кожен запит.

Підходить для:

  • персоналізованих сторінок
  • авторизованих користувачів

4. Інкрементальна регенерація (ISR)

Комбінація SSG + SSR:

  • HTML кешується
  • періодично оновлюється

Чому це називається «гібридним»

Тому що Next.js не змушує обирати щось одне:

  • не «все SSR»
  • не «все SPA»
  • не «все SSG»

Можна комбінувати все одразу - там, де це доречно.


Навіщо потрібен гібридний рендеринг

Продуктивність

  • менше JS
  • швидкий перший рендер

SEO

  • HTML доступний одразу

UX

  • інтерактивність там, де потрібно

Масштабованість

  • простіше оптимізувати великі застосунки

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.