default.js

default.js ファイルは、パラレルルート 内でフォールバックをレンダリングするために使用されます。Next.js がフルページロード後に スロット のアクティブな状態を復元できない場合に利用されます。

ソフトナビゲーション 中、Next.js は各スロットのアクティブな 状態(サブページ)を追跡します。しかし、ハードナビゲーション(フルページロード)の場合、Next.js はアクティブな状態を復元できません。この場合、現在の URL にマッチしないサブページに対して default.js ファイルがレンダリングされます。

以下のフォルダ構造を考えてみましょう。@team スロットには settings ページがありますが、@analytics にはありません。

パラレルルートのマッチしないルート

/settings にナビゲートすると、@team スロットは settings ページをレンダリングし、@analytics スロットの現在アクティブなページを維持します。

ページをリフレッシュすると、Next.js は @analytics に対して default.js をレンダリングします。default.js が存在しない場合、代わりに 404 がレンダリングされます。

さらに、children は暗黙的なスロットであるため、Next.js が親ページのアクティブな状態を復元できない場合に children のフォールバックをレンダリングするためにも default.js ファイルを作成する必要があります。

リファレンス

params(オプション)

ルートセグメントからスロットのサブページまでの 動的ルートパラメータ を含むオブジェクトに解決される Promise です。例:

export default async function Default({
  params,
}: {
  params: Promise<{ artist: string }>
}) {
  const { artist } = await params
}
export default async function Default({ params }) {
  const { artist } = await params
}
URLparams
app/[artist]/@sidebar/default.js/zackPromise<{ artist: 'zack' }>
app/[artist]/[album]/@sidebar/default.js/zack/nextPromise<{ artist: 'zack', album: 'next' }>
  • params プロパティは Promise であるため、値にアクセスするには async/await または React の use 関数を使用する必要があります。
    • バージョン14以前では、params は同期プロパティでした。後方互換性のために、Next.js 15でも同期的にアクセスできますが、この動作は将来非推奨になります。

On this page