Next.js 16 (beta): Turbopack становится стандартом, новые API кеширования и поддержка React Compiler

Next.js 16 (beta) официально доступен: ранний релиз приносит стабильный Turbopack как сборщик по умолчанию, переработанную маршрутизацию и префетчинг, новые API кеширования, поддержку React Compiler и расширения для интеграций. В числе ключевых новшеств — до 2–5× более быстрые сборки и до 5–10× более быстрый Fast Refresh, файловый кеш в Turbopack, Build Adapters API (alpha), React 19.2 с View Transitions и Activity, а также изменения по умолчанию для кеша и изображения. Это бета-версия: команда призывает попробовать обновление, протестировать проекты и поделиться фидбеком до стабильного релиза.

Что нового в Next.js 16 (beta)

Turbopack — стабилен и по умолчанию

Turbopack достиг статуса production-ready как для разработки, так и для продакшн-сборок и теперь используется по умолчанию во всех новых приложениях на Next.js. По данным команды, разработчики уже отмечают 2–5× ускорение сборок и до 5–10× ускорение Fast Refresh в сравнении с прежними конфигурациями. Для проектов с глубоко кастомизированным webpack переход не обязателен — существующие настройки продолжат работать.

Файловый кеш в Turbopack (beta)

В режиме разработки Turbopack научился сохранять артефакты компиляции на диск и переиспользовать их между перезапусками, что особенно заметно ускоряет старт и пересборки в больших репозиториях. Функцию можно включить в конфигурации:

/** next.config.ts|js */
const nextConfig = {
  experimental: {
    turbopackFileSystemCacheForDev: true,
  },
};
export default nextConfig;

Обновлённый create-next-app

Шаблон нового проекта получил упрощённый мастер настройки, современную структуру, а также лучшие практики по умолчанию: App Router как базу, TypeScript-first конфигурацию, Tailwind CSS и ESLint из коробки.

Build Adapters API (alpha)

Появился первый предварительный вариант API адаптеров сборки. Он позволяет платформам деплоя и кастомным пайплайнам подключаться к процессу build, модифицировать конфигурацию и/или обработку выходных артефактов. Пример включения собственного адаптера:

/** next.config.ts|js */
const nextConfig = {
  experimental: {
    adapterPath: require.resolve('./my-adapter.js'),
  },
};
module.exports = nextConfig;

React Compiler — поддержка стабильна

Вслед за релизом React Compiler 1.0 его интеграция в Next.js стала стабильной. Компилятор автоматически мемоизирует компоненты, сокращая лишние перерендеры без ручной оптимизации. Опция reactCompiler выведена из статуса experimental, но по умолчанию выключена: при включении учитывайте, что сборки и dev-компиляция могут стать длиннее из‑за работы Babel.

Маршрутизация и префетчинг — быстрее «из коробки»

Полностью переработан механизм навигации и предзагрузки. Теперь:

  • Выполняется дедупликация layout при префетчинге нескольких ссылок с общей раскладкой — общий слой загружается один раз вместо многократной загрузки.
  • Префетчинг стал инкрементальным: подгружаются только отсутствующие в кеше части вместо целых страниц.
  • Запросы отменяются при уходе ссылки из вьюпорта, приоритизируются при наведении и повторно выполняются, когда данные помечены как устаревшие.

Эти улучшения не требуют изменений кода и сокращают трафик при одновременном ускорении переходов.

Кеширование и управление данными

Точнее контроль через новые API

В Next.js 16 (beta) переработаны API для обновления кеша и инвалидации.

revalidateTag() теперь принимает второй аргумент — профиль cacheLife — для поведения stale-while-revalidate. Рекомендуемый профиль для большинства случаев — 'max':

import { revalidateTag } from 'next/cache';

// Встроенные профили
revalidateTag('blog-posts', 'max');
revalidateTag('news-feed', 'hours');
revalidateTag('analytics', 'days');

// Пользовательское время
revalidateTag('products', { revalidate: 3600 });

updateTag() — новый API только для Server Actions с семантикой read-your-writes: данные в кеше истекают и обновляются в рамках того же запроса, чтобы пользователь сразу увидел изменения.

'use server';
import { updateTag } from 'next/cache';

export async function updateUserProfile(userId, profile) {
  await db.users.update(userId, profile);
  updateTag(`user-${userId}`);
}

refresh() — ещё один новый API для Server Actions для обновления только некешируемых фрагментов без затрагивания кеша страницы:

'use server';
import { refresh } from 'next/cache';

export async function markNotificationAsRead(id) {
  await db.notifications.markAsRead(id);
  refresh();
}

React 19.2 и канареечные возможности

App Router в этой версии использует актуальный React Canary, включая React 19.2. Среди заметных функций:

  • View Transitions — плавная анимация элементов при переходах и обновлениях внутри Transition.
  • Activity — рендер «фоновой активности», скрывая части UI через display: none с сохранением состояния и корректной очисткой эффектов.
  • useEffectEvent() — новый механизм для безопасной работы с событиями в эффектах без ловушек замыканий.

PPR уходит в Cache Components

Экспериментальный флаг Partial Pre‑Rendering (PPR) удалён. Его возможности интегрируются в Cache Components. Начиная с Next.js 16, включение происходит через experimental.cacheComponents. Подробная документация и примеры ожидаются ближе к конференции и стабильному релизу.

Производительность и инструменты

Помимо ускорения сборки с Turbopack, улучшены команды next dev и next start. Для next.config.ts добавлена опция запуска с нативной поддержкой TypeScript в Node.js через флаг:

next dev -experimental-next-config-strip-types
next build -experimental-next-config-strip-types
next start -experimental-next-config-strip-types

Breaking changes, удаления и деприкации

В бете отмечены изменения по умолчанию и несовместимости, на которые стоит обратить внимание заранее:

  • Асинхронные params в маршрутах.
  • Новые дефолты для next/image.
  • Удалены ранее помеченные как deprecated возможности; часть API переведена в статус deprecated и будет удалена в будущих релизах.

Команда готовит развёрнутое руководство по миграции к стабильной версии. Рекомендуется прогнать бета‑версию на CI, проверить ключевые сценарии рендера и работы кеша, а также поведение изображений и данных в App Router.

Как попробовать бета-версию

Доступны несколько путей установки:

# Автоматическое обновление с помощью codemod
npx @next/codemod@canary upgrade beta

# Ручное обновление
npm install next@beta react@latest react-dom@latest

# Создать новый проект на бете
npx create-next-app@beta

Если вы используете React Compiler, убедитесь, что установлен актуальный плагин и опция reactCompiler включена в конфигурации проекта.

Кому особенно стоит обновиться

Команды с крупными монорепозиториями и многостраничными интерфейсами получат максимальную выгоду от Turbopack и файлового кеша — ускорятся холодный старт, пересборки и Fast Refresh. Приложения с активной навигацией и большим количеством ссылок ощутят выигрыш от дедупликации layout и инкрементального префетчинга. Продукты с высокими требованиями к отзывчивости UI оценят React Compiler и новые API кеша с мгновенной видимостью изменений.

Обратная связь и курс на стабильный релиз

Это бета: команда просит делиться наблюдениями и баг‑репортами, чтобы успеть отловить регрессии и отполировать DX/UX до выхода стабильной версии. Чем шире покрытие реальных проектов, тем точнее будут дефолты и поведение кеша в релизе 16.0.

Фото аватара

Сергей Жуковский

Маркетолог про обучение и образование

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *