Next.js 15

October 21, 2024
Next.js 15

Next.js 15 Выпущен: Стабильная Версия для Продакшена

Next.js 15 официально представлен и готов к использованию в продакшене. Этот релиз основан на обновлениях из RC1 и RC2 и фокусируется на стабильности, добавляя при этом несколько захватывающих нововведений. Попробуйте Next.js 15 уже сегодня:

# Используйте новый инструмент автоматического обновления CLI npx @next/codemod@canary upgrade latest # ...или обновитесь вручную npm install next@latest react@rc react-dom@rc

Основные нововведения в Next.js 15:

  • @next/codemod CLI: Легко обновляйтесь до последних версий Next.js и React.
  • Асинхронные Request API (Breaking Change): Шаг к упрощённой модели рендеринга и кэширования.
  • Семантика Кэширования (Breaking Change): Запросы fetch, обработчики маршрутов GET и клиентская навигация больше не кэшируются по умолчанию.
  • Поддержка React 19: Совместимость с React 19, экспериментальный React Compiler и улучшения ошибок гидратации.
  • Turbopack Dev (Стабильный): Улучшения производительности и стабильности.
  • Индикатор Статических Маршрутов: Новый визуальный индикатор показывает статические маршруты во время разработки.
  • unstable_after API (Экспериментальный): Выполнение кода после завершения стриминга ответа.
  • instrumentation.js API (Стабильный): Новый API для наблюдаемости жизненного цикла сервера.
  • Улучшенные Формы (next/form): Расширение HTML-форм с клиентской навигацией.
  • Поддержка next.config.ts: Поддержка TypeScript в файлах next.config.ts.
  • Улучшения для Самостоятельного Хостинга: Больше контроля над заголовками Cache-Control.
  • Безопасность Server Actions: Непредсказуемые конечные точки и удаление неиспользуемых действий.
  • Оптимизация Бандлинга Внешних Пакетов (Стабильный): Новые параметры конфигурации для App и Pages Router.
  • Поддержка ESLint 9
  • Улучшения Производительности Разработки и Сборки

Плавное Обновление с помощью @next/codemod CLI

Мы включили codemod (автоматизированные преобразования кода) в каждый основной релиз Next.js для облегчения обновления. Новый улучшенный CLI позволяет легко обновиться до последних версий:

npx @next/codemod@canary upgrade latest

Асинхронные Request API (Breaking Change)

Чтобы подготовиться к будущим оптимизациям, мы переводим API, зависящие от данных запроса (например, cookies, headers, params, searchParams), в асинхронный режим:

import { cookies } from 'next/headers'; export async function AdminPanel() { const cookieStore = await cookies(); const token = cookieStore.get('token'); // ... }

Это является ломающим изменением. Доступен codemod для автоматизации миграции:

npx @next/codemod@canary next-async-request-api .

Семантика Кэширования (Breaking Change)

Мы изменили поведение кэширования по умолчанию:

  • GET Обработчики Маршрутов: Больше не кэшируются по умолчанию в Next.js 15.
  • Кэш Клиентского Роутера: Компоненты страниц больше не кэшируются по умолчанию при навигации.

Вы всё ещё можете включить кэширование при необходимости с помощью опций конфигурации.

Поддержка React 19

В Next.js 15 мы добавили поддержку React 19 RC, включая экспериментальный React Compiler и улучшения ошибок гидратации. Для Pages Router сохранена совместимость с React 18, позволяя постепенно обновляться.

Turbopack Dev (Стабильный)

Мы рады сообщить, что next dev --turbo теперь стабилен и готов ускорить ваш процесс разработки. Мы успешно использовали его для разработки vercel.com, nextjs.org и других наших приложений, получив отличные результаты.

A futuristic server room

Другие Улучшения

  • Индикатор Статических Маршрутов: Помогает определить, какие маршруты являются статическими или динамическими во время разработки.
  • unstable_after API (Экспериментальный): Позволяет выполнять код после завершения стриминга ответа, не блокируя основной ответ.
  • instrumentation.js API (Стабильный): Позволяет отслеживать жизненный цикл сервера для мониторинга производительности и ошибок.
  • Компонент <Form>: Расширяет HTML-формы с предзагрузкой, клиентской навигацией и прогрессивным улучшением.
  • Поддержка next.config.ts: Предоставляет типизацию и автодополнение для опций конфигурации Next.js.
  • Улучшения для Самостоятельного Хостинга: Больше контроля над директивами Cache-Control и улучшения оптимизации изображений без необходимости установки sharp.
  • Безопасность Server Actions: Введены безопасные, непредсказуемые идентификаторы действий и удаление неиспользуемых действий для повышения безопасности.
  • Оптимизация Бандлинга Внешних Пакетов: Новые опции конфигурации serverExternalPackages и bundlePagesRouterDependencies для App и Pages Router.
  • Поддержка ESLint 9: С обратной совместимостью с ESLint 8.
  • Улучшения Производительности: Более быстрые сборки, улучшенный Fast Refresh и оптимизированная статическая генерация.

Полные подробности и инструкции по обновлению доступны в официальной документации Next.js 15.


Authors of the original post: Delba de Oliveira, Jimmy Lai, Rich Haines

Go to all posts