ルートモジュール
routes.ts
で参照されるファイルは、ルートモジュールと呼ばれます。
ルートモジュールは、React Routerのフレームワーク機能の基礎であり、以下を定義します。
- 自動コード分割
- データ読み込み
- アクション
- 検証のやり直し
- エラー境界
- その他多数
このガイドは、すべてのルートモジュール機能の概要です。入門ガイドの残りの部分では、これらの機能についてより詳細に説明します。
コンポーネント(default
)
ルートが一致したときにレンダリングされるコンポーネントを定義します。
loader
ルートローダーは、ルートコンポーネントがレンダリングされる前に、ルートコンポーネントにデータを提供します。サーバーサイドレンダリング時、またはプリレンダリングによるビルド時にのみサーバー上で呼び出されます。
こちらも参照してください。
clientLoader
ブラウザでのみ呼び出され、ルートクライアントローダーは、ルートローダーに加えて、またはルートローダーの代わりに、ルートコンポーネントにデータを提供します。
クライアントローダーは、関数にhydrate
プロパティを設定することで、サーバーレンダリングされたページの初期ページロードハイドレーションに参加できます。
as const
を使用することで、TypeScriptはclientLoader.hydrate
の型をboolean
ではなくtrue
として推論します。
これにより、React RouterはclientLoader.hydrate
の値に基づいてloaderData
の型を導出できます。
こちらも参照してください。
action
ルートアクションは、<Form>
、useFetcher
、useSubmit
から呼び出されたときに、ページ上のすべてのローダーデータの自動再検証を使用して、サーバーサイドのデータ変更を可能にします。
clientAction
ルートアクションに似ていますが、ブラウザでのみ呼び出されます。
こちらも参照してください。
ErrorBoundary
他のルートモジュールAPIがスローした場合、ルートコンポーネントの代わりにルートモジュールのErrorBoundary
がレンダリングされます。
HydrateFallback
最初のページ読み込み時、ルートコンポーネントはクライアントローダーが終了した後にのみレンダリングされます。エクスポートされた場合、HydrateFallback
はルートコンポーネントの代わりにすぐにレンダリングできます。
ルートヘッダーは、サーバーサイドレンダリング時にレスポンスと共に送信されるHTTPヘッダーを定義します。
handle
ルートハンドルを使用すると、アプリはuseMatches
でルートマッチに何かを追加して、(パンくずリストなど)抽象化を作成できます。
links
ルートリンクは、ドキュメントの<head>
でレンダリングされる<link>
要素を定義します。
すべてのルートリンクは集約され、<Links />
コンポーネントを介してレンダリングされます。通常はアプリのルートでレンダリングされます。
ルートメタは、ドキュメントの<head>
でレンダリングされるメタタグを定義します。
すべてのルートのメタは集約され、<Meta />
コンポーネントを介してレンダリングされます。通常はアプリのルートでレンダリングされます。
こちらも参照
shouldRevalidate
デフォルトでは、すべてルートはアクション後に再検証されます。この関数は、データに影響を与えないアクションに対して、ルートが再検証をオプトアウトできるようにします。
次へ: レンダリング戦略