Обновление App Router в Next.js
June 22, 2023App Router представляет новую основу для будущего Next.js, но команда признаёт, что есть возможности для улучшения. В предстоящих релизах Next.js они сосредоточатся на следующих направлениях:
- Улучшение производительности: повышение скорости локальной разработки, уменьшение времени сборки и оптимизация производительности серверлесс-функций.
- Повышение стабильности: активное исправление ошибок и повышение надежности App Router.
- Улучшение обучения разработчиков: обновление документации и предоставление новых учебных материалов.
App Router был разработан с целью преодоления ограничений Pages Router и для лучшей интеграции с современными возможностями React, такими как стриминг, Server Components и Suspense. Команда стремится обеспечить инкрементальное внедрение, позволяя разработчикам постепенно мигрировать свои приложения на App Router без полной переработки и с возможностью отката при необходимости.
Путь к стабильности включал выпуск RFC, бета-версии и, наконец, стабильного API в версии 13.4. Однако команда признаёт, что еще не полностью удовлетворена текущим опытом использования App Router и делает его улучшение своим главным приоритетом.
Улучшение производительности включает:
- Локальная производительность: замена webpack на Turbopack для более быстрой компиляции и обновления модулей. Turbopack доступен в бета-версии:
next dev --turbo
- Производительность сборки: работа над поддержкой Turbopack для продакшен-сборок:
next build --turbo
- Производительность в продакшене: оптимизация функций Vercel для уменьшения холодных стартов и улучшения использования памяти.
Повышение стабильности достигается за счет активного исправления ошибок и тесного взаимодействия с сообществом. В последних обновлениях (например, в версии 13.4.7) уже исправлены значимые проблемы.
Улучшение обучения разработчиков включает:
- Обновление документации: полная переработка документации на nextjs.org/docs с улучшенной структурой и наглядными иллюстрациями. Добавлена возможность переключения между документацией для Pages Router и App Router.
- Дополнительные ресурсы: планируется выпуск новых учебных материалов, включая обновленный курс и примеры реальных проектов, таких как переписанная версия Next.js Commerce.
- Обучение новым возможностям React: предоставление разъяснений по Server Components, Client Components и другим современным концепциям React. Команда признаёт необходимость в дополнительном образовании по этим темам и работает над этим совместно с сообществом React.
- Развитие экосистемы: поддержка и интеграция с внешними библиотеками, такими как Panda CSS, которые начинают поддерживать новые возможности React.
- Server Actions (Альфа): новая функция для серверных мутаций данных, которая пока не рекомендуется для использования в продакшене, но открыта для обратной связи от разработчиков.
Authors of the original post: Delba de Oliveira, Lee Robinson