Какие преимущества у Next.js
Что проверяют
Понимаете ли вы, за что платите, беря фреймворк поверх React, и не отвечаете ли по документации пятилетней давности. Рассказ про папку pages, getStaticProps и getServerSideProps сразу датирует ваш опыт. Следом обычно спрашивают, чем серверный компонент отличается от клиентского и когда страница перестаёт быть статической.
Как отвечать
Идите от того, что фреймворк снимает с вас:
- рендеринг на выбор: статика на сборке, ISR с
revalidate, серверный рендер на запрос, потоковая отдача черезSuspense. Всё это в одном приложении, режим выбирается на уровне маршрута; - серверные компоненты: код запроса к базе не попадает в бандл, клиенту уходит разметка и только те компоненты, что помечены
"use client"; - Server Actions: мутация вызывается прямо из формы, без ручного роута и слоя fetch;
- кэш:
revalidatePathиrevalidateTagдля точечного сброса, директиваuse cacheдля кэширования функций и компонентов; - оптимизации из коробки:
next/imageс ресайзом и современными форматами,next/fontс самостоятельным хостингом шрифтов без скачка вёрстки, разделение кода, префетч ссылок; - SEO: Metadata API и
generateMetadata,sitemap.ts,robots.ts, генерация OG-картинок.
Про свежие версии: в Next.js 16 сборщиком по умолчанию стал Turbopack, а middleware.ts переехал в proxy.ts. Обязательно назовите и цену: серверный рантайм надо где-то держать, а кэш становится отдельной сущностью, которую нужно уметь отлаживать.
Где спотыкаются
Сводят всё к «Next нужен для SEO». Половина ценности это данные на сервере и кэширование, а не мета-теги.
Ставят "use client" близко к корню дерева и теряют смысл серверных компонентов: в бандл уезжает почти всё приложение.
Не могут объяснить, почему страница вдруг стала динамической. Достаточно вызвать cookies() или headers() где-то выше по дереву, и статика для всей ветки выключается.