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 レイアウトにのみ適用されます。