ルーティング
ルートの構成
ルートはapp/routes.ts
で構成されます。各ルートには、URLと一致させるURLパターンと、その動作を定義するルートモジュールのファイルパスの2つの必須部分があります。
より大規模なルート構成の例を以下に示します。
構成ではなくファイル命名規則でルートを定義する方が良い場合は、@react-router/fs-routes
パッケージがファイルシステムルーティング規則を提供します。
ルートモジュール
routes.ts
で参照されるファイルは、各ルートの動作を定義します。
ルートモジュールの例を以下に示します。
ルートモジュールには、アクション、ヘッダー、エラーバウンダリなどの機能が他にもありますが、それらは次のガイドで説明します。ルートモジュール
ネストされたルート
ルートは親ルート内にネストできます。
親のパスは子に自動的に含まれるため、この構成では"/dashboard"
と"/dashboard/settings"
の両方のURLが作成されます。
子ルートは、親ルートの<Outlet/>
を通じてレンダリングされます。
ルートルート
routes.ts
内のすべてのルートは、特別なapp/root.tsx
モジュール内にネストされています。
レイアウトルート
layout
を使用すると、レイアウトルートは子に対して新しいネストを作成しますが、URLにセグメントを追加しません。ルートルートに似ていますが、任意のレベルに追加できます。
インデックスルート
インデックスルートは、親のURLで親のOutletにレンダリングされます(デフォルトの子ルートのようなもの)。
インデックスルートには子を含めることができないことに注意してください。
ルートプレフィックス
prefix
を使用すると、親ルートファイルを追加する必要なく、一連のルートにパスのプレフィックスを追加できます。
動的セグメント
パスセグメントが:
で始まる場合、それは「動的セグメント」になります。ルートがURLと一致すると、動的セグメントはURLから解析され、他のルーターAPIにparams
として提供されます。
1つのルートパスに複数の動的セグメントを含めることができます。
オプションセグメント
セグメントの最後に?
を追加することで、ルートセグメントをオプションにすることができます。
オプションの静的セグメントも使用できます。
スプラット
「キャッチオール」や「スター」セグメントとも呼ばれます。ルートパスパターンが/*
で終わる場合、/
を含む/
以降の文字と一致します。
*
を分解できますが、新しい名前を割り当てる必要があります。一般的な名前はsplat
です。
コンポーネントルート
URLと一致するコンポーネントをコンポーネントツリー内の任意の要素に使用することもできます。
これらのルートは、データの読み込み、アクション、コード分割、その他のルートモジュールの機能には参加しないため、使用例はルートモジュールのものよりも制限されます。
次へ:ルートモジュール