nextjsのsoft navigationとhard navigation
アクティブ状態とナビゲーション
デフォルトでは、Next.js は各スロットのアクティブな状態(またはサブページ)を追跡します。ただし、スロット内でレンダリングされるコンテンツは、ナビゲーションの種類によって異なります。
⸻
🔹 ソフトナビゲーション (Soft Navigation)
クライアントサイドのナビゲーション中に発生します。
Next.js は部分的なレンダリングを行い、スロット内のサブページを切り替えます。
このとき、他のスロットのアクティブなサブページは維持されます。
→ たとえそれらのスロットが現在のURLに一致していなくても、その状態は保持されます。
⸻
🔹 ハードナビゲーション (Hard Navigation)
フルページロード(ブラウザのリフレッシュ)後に発生します。
Next.js は、現在のURLに一致しないスロットのアクティブ状態を特定できません。
そのため、該当スロットには以下のいずれかが表示されます:
default.js ファイル(存在する場合)
404 ページ(default.js が存在しない場合)
⸻
🔹 まとめ
ソフトナビゲーション → アクティブ状態を維持しつつ、対象スロットのみ更新
ハードナビゲーション → アクティブ状態が失われ、default.js または 404 ページが表示される
Next.js のスロット管理において、default.js は重要なフォールバック手段として機能します。