バージョン 15
Next.js バージョン 15 に更新するには、upgrade
コードモッドを使用できます:
手動で行う場合は、最新の Next & React RC をインストールしていることを確認してください:
補足:
- ピア依存関係の警告が表示された場合、
react
と react-dom
を推奨バージョンに更新するか、警告を無視するために --force
または --legacy-peer-deps
フラグを使用する必要があります。Next.js 15 と React 19 の両方が安定版になれば、これは不要になります。
- TypeScriptを使用している場合、一時的に React の型を上書きする必要があります。詳細は React 19 RC アップグレードガイド を参照してください。
react
と react-dom
の最小バージョンは現在 19 です。
useFormState
は useActionState
に置き換えられました。useFormState
フックは React 19 でまだ利用可能ですが、非推奨であり、将来のリリースで削除されます。useActionState
が推奨され、pending
状態を直接読み取るなどの追加プロパティが含まれています。詳細情報
useFormStatus
に data
、method
、action
などの追加キーが含まれるようになりました。React 19 を使用していない場合、pending
キーのみが利用可能です。詳細情報
- React 19 アップグレードガイドでさらに詳しく読むことができます。
以前は同期的だったランタイム情報に依存する Dynamic API が、現在は非同期になっています:
移行の負担を軽減するために、プロセスを自動化する codemod が利用可能であり、API は一時的に同期的にアクセスできます。
runtime
セグメント設定は以前、edge
に加えて experimental-edge
の値をサポートしていました。両方の設定は同じことを指し、オプションを簡素化するため、experimental-edge
を使用するとエラーが発生します。これを修正するには、runtime
設定を edge
に更新してください。これを自動的に行うコードモッドが利用可能です。
fetch
リクエストはデフォルトではもはやキャッシュされません。
特定の fetch
リクエストをキャッシュするには、cache: 'force-cache'
オプションを渡すことができます。
レイアウトまたはページ内のすべての fetch
リクエストをキャッシュするには、export const fetchCache = 'default-cache'
セグメント設定オプションを使用できます。個々の fetch
リクエストが cache
オプションを指定した場合、そちらが優先されます。
ルートハンドラの GET
関数は、デフォルトではもはやキャッシュされません。GET
メソッドをキャッシュするには、ルートハンドラファイルで export const dynamic = 'force-static'
のようなルート設定オプションを使用できます。
<Link>
または useRouter
によるページ間のナビゲーション時、ページセグメントは、クライアントサイドルーターキャッシュから再利用されなくなりました。ただし、ブラウザの戻る・進む操作や共有レイアウトでは引き続き再利用されます。
ページセグメントをキャッシュするには、staleTimes
設定オプションを使用できます:
レイアウトとローディング状態は引き続きナビゲーション時にキャッシュされ再利用されます。
@next/font
パッケージは、組み込みの next/font
に置き換えられました。インポートを安全かつ自動的にリネームするコードモッドが利用可能です。
experimental.bundlePagesExternals
は現在安定版となり、bundlePagesRouterDependencies
に名前が変更されました。
experimental.serverComponentsExternalPackages
は現在安定版となり、serverExternalPackages
に名前が変更されました。
Next.js 15 では、Speed Insights の自動インストゥルメンテーションが削除されました。
引き続き Speed Insights を使用するには、Vercel Speed Insights クイックスタートガイドに従ってください。
NextRequest
の geo
および ip
プロパティは、これらの値はホスティングプロバイダによって提供されるため、削除されました。この移行を自動化するコードモッドが利用可能です。
Vercel を使用している場合は、代わりに @vercel/functions
の geolocation
および ipAddress
関数を使用できます: