ルートモジュール
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
デフォルトでは、すべてのアクション後にすべてのルートが再検証されます。この関数を使用すると、ルートはデータに影響を与えないアクションの再検証をオプトアウトできます。
次:レンダリング戦略