Як працює prefetch у Next.js?
Prefetch у Next.js - це фонове попереднє завантаження ресурсів наступної сторінки (JS + дані), щоб при кліку навігація була майже миттєвою.
Простіше:
Поки користувач дивиться сторінку - Next.js готує наступну.
Як це працює крок за кроком
- Ти рендериш посилання:
tsx
<Link href="/blog">Blog</Link>- Коли посилання потрапляє у viewport (видиму частину екрана)
- Next.js у фоні:
- завантажує JS-бандл цільового маршруту
- запитує дані (якщо вони потрібні)
- Користувач клікає -> перехід відбувається без очікування мережі
Що саме попередньо завантажується
- JS-код сторінки (code splitting)
- RSC payload / дані для Server Components
- не виконується навігація
- не рендериться сторінка заздалегідь
Коли prefetch увімкнено
- За замовчанням - для
<Link /> - Тільки для внутрішніх посилань
- Тільки коли:
- посилання у viewport
- з'єднання нормальне (не Save-Data)
- браузер не в режимі енергозбереження
Коли prefetch не працює
- звичайний
<a href> - зовнішні посилання
- якщо
prefetch={false} - якщо сторінка вимагає даних строго за запитом (
no-store)
Як керувати prefetch
Вимкнути
tsx
<Link href="/blog" prefetch={false}>
Blog
</Link>Програмна навігація
ts
router.prefetch('/blog')Prefetch і типи рендерингу
| Рендеринг | Prefetch |
|---|---|
| SSG | HTML + дані |
| ISR | актуальна версія |
| SSR | лише payload (рендер при переході) |
Навіщо це потрібно
- миттєві переходи
- менший TTFB на клік
- відчуття «нативного» застосунку
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.