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。例えば
app/[artist]/@sidebar/default.js
export default async function Default({
params,
}: {
params: Promise<{ artist: string }>
}) {
const artist = (await params).artist
}
例 | URL | params |
---|---|---|
app/[artist]/@sidebar/default.js | /zack | Promise<{ artist: 'zack' }> |
app/[artist]/[album]/@sidebar/default.js | /zack/next | Promise<{ artist: 'zack', album: 'next' }> |
params
プロパティはPromiseであるため、値にアクセスするにはasync/await
または React のuse
関数を使用する必要があります。- バージョン14以前では、
params
は同期プロパティでした。下位互換性のために、Next.js 15では同期的にアクセスできますが、この動作は将来非推奨となります。
- バージョン14以前では、
これは役に立ちましたか?