プロジェクト構造
Remix プロジェクトの構造を理解することは、効率的にアプリケーションを開発し、保守するために非常に重要です。このセクションでは、Remix プロジェクトの主要なディレクトリとファイルについて、具体例を用いて説明します。
基本的なプロジェクト構造
新しい Remix プロジェクトを作成すると、以下のようなディレクトリ構造が生成されます。
あなたのプロジェクト/
├── app/
│ ├── routes/
│ │ └── index.jsx
│ ├── styles/
│ └── entry.client.jsx
├── public/
├── remix.config.js
└── package.json
ディレクトリとファイルの解説
app/
: このディレクトリには、アプリケーションの主要なロジックとコンポーネントが含まれます。routes/
: このディレクトリは、アプリケーションのルーティングとページコンポーネントを格納します。index.jsx
はアプリケーションのエントリーポイントであり、初期ページを定義します。styles/
: CSS ファイルや他のスタイルシートがこのディレクトリに格納されます。entry.client.jsx
: クライアントサイドのエントリーポイントを定義し、ブラウザでのアプリケーションの初期化を担当します。
public/
: 静的ファイル(画像、フォント、favicon.ico
など)がこのディレクトリに格納されます。ブラウザから直接アクセス可能です。remix.config.js
: Remix プロジェクトの設定を定義するファイルです。ルートディレクトリやプラグインの設定など、プロジェクトのカスタマイズに使用します。package.json
: 依存関係やスクリプトなど、プロジェクトのメタデータを管理するファイルです。
具体例:ブログプラットフォームのルーティング設定
以下は、ブログプラットフォームを作成する際のroutes/
ディレクトリ内の構成例です。
app/
└── routes/
├── posts/
│ ├── $postId.jsx // 個々のブログ記事を表示
│ └── index.jsx // ブログ記事のリストを表示
└── index.jsx // ホームページ
posts/index.jsx
: すべてのブログ記事をリストアップするページのコンポーネントを定義します。posts/$postId.jsx
: 動的な URL パラメータを使用して、特定のブログ記事を表示するページのコンポーネントを定義します。$
は動的セグメントを意味します。