Route Groups
appディレクトリ内では、ネストされたフォルダは通常、URLパスにマッピングされます。しかし、フォルダをRoute Groupとしてマークすることで、そのフォルダがルートのURLパスに含まれないようにすることができます。
これにより、URLパスの構造に影響を与えることなく、ルートセグメントやプロジェクトファイルを論理的なグループに整理することができます。
Route Groupsは以下の用途に役立ちます:
- サイトのセクション、意図、チームごとにルートをグループ化する
- 同じルートセグメントレベルでネストされたレイアウトを有効にする:
- 同じセグメント内で複数のネストされたレイアウトを作成する(複数のroot レイアウトを含む)
- 特定のセグメントをレイアウトに選択する
- 特定のルートでローディングスケルトンを選択する
規約
Route Groupは、フォルダ名を括弧で囲むことで作成できます: (folderName)
Good to know:
- Route Groupの命名は、組織化以外に特別な意味を持ちません。URLパスには影響を与えません。
- Route Groupを含むルートは、他のルートと同じURLパスに解決されるべきではありません。たとえば、Route GroupはURL構造に影響を与えないため、
(marketing)/about/page.jsと(shop)/about/page.jsはどちらも/aboutに解決され、エラーが発生します。- トップレベルの
layout.jsファイルを使用せずに複数のroot レイアウトを使用する場合、ホームのpage.jsファイルはRoute Groupの1つに定義する必要があります。例:app/(marketing)/page.js。- 複数のroot レイアウトをまたいでナビゲートすると、フルページロードが発生します(クライアントサイドのナビゲーションとは異なります)。たとえば、
app/(shop)/layout.jsを使用する/cartからapp/(marketing)/layout.jsを使用する/blogにナビゲートすると、フルページロードが発生します。これは複数のroot レイアウトにのみ適用されます。