ルーターこのページを編集.md

ファイルシステムベースのルーター

このランタイムでは、ファイルシステムベースのルーターを使用してアプリケーションを構築することもできます。このルーターを使用すると、Next.jsなどの他のメタフレームワークと同様に、ファイルシステムベースのルーティング構造を作成できます。

react-server CLIを使用する際にアプリケーションのエントリーポイントを指定しない場合、@lazarv/react-serverは自動的にファイルシステムベースのルーターを使用します。

ファイルシステムベースのルーターを使用して開発サーバーを起動するには、次のコマンドを実行します:

pnpm react-server

ファイルシステムベースのルーターを使用してアプリケーションをビルドするには:

pnpm react-server build

ビルドされた本番アプリケーションを通常通り起動するには:

pnpm react-server start

このルーターは標準で型付きルートをサポートしています。TypeScriptを使用する場合、生成された型をプロジェクトに含めることで、すべてのルートが型チェックされます。型付きルートは、Linkコンポーネント、useMatchフック、useClientフックからのnavigatereplaceprefetch関数、またReactServerComponentで利用できる各種アウトレットを使うときにも適用されます。

生成された型をプロジェクトに含めるには、.react-serverディレクトリからの.tsファイルをTypeScript設定に含めるだけです。そのためには、tsconfig.jsonファイルのinclude配列に.react-server/**/*.tsを追加します:

{ "compilerOptions": { // ... }, "include": [/* ... */, ".react-server/**/*.ts"] }

ルーターは仮想的な@lazarv/react-server/routesモジュールも生成し、すべてのルートの型付きルートディスクリプタをエクスポートします — .Link.href().useParams()、型付きcreatePage / createLayoutヘルパー、ブランド付きアウトレット型など。詳細はルートモジュールのドキュメントを参照してください。

型付きルーティングシステムの完全なガイド — プログラム的なcreateRoute / createRouter API、スキーマバリデーション、軽量パース関数、型付きフック、関数型検索アップデーター、SearchParams変換を含む — については、型付きルーターページを参照してください。ファイルシステムルーター固有の型付きルートについては、ルートを定義するを参照してください。

ファイルシステムベースのルーターは、Next.js特有の機能を使っていなければ、Next.jsプロジェクトとそのまま置き換えて使うことができます。つまり、標準的な機能だけを使っている場合は、両者の間でソースコードを移行しやすいのが特徴です。

ファイルシステムベースのルーターは、Next.jsと以下の機能を共有しています:

Next.jsタイプのファイルシステムベースのルーターを再現するには、appディレクトリ内のページルートとしてpage.tsxファイルのみを使用できるようにルーターを設定するか、srcディレクトリベースのプロジェクト構造を使用する場合はrootディレクトリをsrc/appに変更します。

{ "root": "app", "page": { "include": ["**/page.tsx"] } }