Next.js 15の新機能まとめ|App Routerの進化ポイントを解説

Web開発

Next.js 15は、App Routerの安定化以降では最も大きなアップデートとなり、キャッシュ戦略の刷新やReact 19対応など、開発者体験を大きく変える変更が含まれています。本記事では、Next.js 15の主要な新機能とApp Routerの進化ポイントを、実務目線でわかりやすく整理します。

Next.js 15の概要と位置付け

Next.js 15は、App Routerが「実験的」から完全に主役へと移行したバージョンです。Pages Routerは引き続きサポートされるものの、ドキュメント・新機能のすべてがApp Router前提で設計されており、これから新規プロジェクトを始めるならApp Router一択といえます。

特に注目すべきは、これまで議論を呼んできた「自動キャッシュ」のデフォルト挙動が見直された点です。明示的な指定がなければキャッシュされない方向に揃えられ、初学者が陥りやすい「なぜか古いデータが表示される」問題が大幅に減りました。

主要な新機能まとめ

1. React 19への対応

Next.js 15はReact 19を正式サポートします。Actions(フォーム送信のサーバー処理)、useフック、useOptimisticといった新APIがそのまま利用でき、Server ComponentsとClient Componentsの境界がより明瞭になりました。

2. キャッシュのデフォルト変更

fetchおよびGETルートハンドラのデフォルトキャッシュが「キャッシュしない」に変更されました。明示的にキャッシュしたい場合は fetch(url, { cache: 'force-cache' })export const dynamic = 'force-static' を指定します。意図しないキャッシュによる不具合が起きにくくなった反面、本番のCDN前提では明示指定が必須です。

3. 非同期Request APIs

cookies()headers()paramssearchParams が非同期APIに変更されました。これにより、レンダリング中のリクエスト依存処理を最適化できるようになっています。

// Before(Next.js 14)
const cookieStore = cookies();
const token = cookieStore.get('token');

// After(Next.js 15)
const cookieStore = await cookies();
const token = cookieStore.get('token');

4. Turbopackの安定化(開発用)

next dev --turbo がStable扱いとなり、大規模プロジェクトでも安心して使えるようになりました。HMR(ホットリロード)の体感速度が数倍速くなり、Webpack時代と比べて開発サイクルが明確に短縮されます。

5. Partial Prerendering(PPR)の進化

静的な部分と動的な部分を同一ページで共存させるPPRが実用段階に近づきました。ヘッダーやサイドバーは静的に、メインコンテンツだけ動的に……という構成が無理なく実現できます。

6. next/formとnext/afterの追加

<Form> コンポーネントによりクライアント遷移つきフォーム送信が簡潔に書けるようになり、after() APIではレスポンス送信後に非同期処理(ログ送信など)を実行できます。

App Router進化のポイント

レンダリング戦略の明示化

従来は「fetchの書き方によって暗黙的に静的/動的が切り替わる」仕組みでしたが、Next.js 15では開発者が明示的に選ぶ方針に変わりました。これにより、ビルド時に何が起きているかが追いやすくなっています。

Server Actionsのセキュリティ強化

Server Actionsのエンドポイントが推測不能なIDで公開されるようになり、未使用Actionの自動削除など、本番運用での安全性が高まりました。

移行時の注意点

  • 非同期化されたAPI(cookies/headers/params)の呼び出し箇所はすべてawait対応が必要
  • fetchのキャッシュ前提を見直す(明示的にforce-cacheを付与するかどうか)
  • React 19へのアップグレードに伴い、サードパーティライブラリの互換性を確認
  • 自動移行はCodemod(npx @next/codemod@latest)で大部分カバー可能

まとめ

Next.js 15は、App Router時代の運用課題に正面から向き合ったアップデートです。「キャッシュは明示」「Request APIは非同期」「Turbopackは標準」という3点を押さえれば、新規プロジェクトでも既存プロジェクトの移行でもスムーズに対応できます。まずはローカル環境でTurbopackの体感速度を試すところから始めてみてください。