実際にアプリを構成するソースコードは全てこのディレクトリ内にあります。
ルートディレクトリにあるtailwind.config.ts
など、.config.{ts,js}
で終わるファイルは全て設定ファイルです。
アプリ全体で使われるコンポーネントがここにあります。
アプリ全体のレイアウトを構成するコンポーネントがここにあります。
shadcn/ui
のコンポーネントがここにあります。
アプリ全体で使われるコンテキストがここにあります。
機能ごとにまとめられたコンポーネント、コンテキスト、フックなどがここにあります。
機能を構成するコンポーネントがここにあります。
機能を構成するコンテキストがここにあります。
機能を構成するフックがここにあります。
機能を構成する関数などがここにあります。
アプリ全体で使われるフックがここにあります。
アプリ全体で使われる関数などがここにあります。
APIクライアントやユーティリティ関数などがここにあります。
MSW によるモックの定義がここにあります。
ルーティングが定義されています。
詳しくは File-Based Routing | TanStack Router React Docs を参照してください。
各ルート内では、以下のようなディレクトリ構造が推奨されます。
Directory | Description |
---|---|
-components |
ルート内で使われるコンポーネント |
-context |
ルート内で使われるコンテキスト |
-hooks |
ルート内で使われるフック |
-lib |
ルート内で使われる関数など |
以下に例を示します。
src/routes/problems/
├── -components
│ ├── code-editor
│ │ ├── index.ts // 公開するコンポーネントをexportする
│ │ ├── run-button.tsx // 実行ボタン
│ │ └── editor.tsx // エディタ
│ └── problem
│ ├── index.ts // 公開するコンポーネントをexportする
│ ├── problem.tsx // 問題表示
│ └── solution.tsx // 解答表示
├── -context
│ └── problem
│ ├── index.ts // 公開するコンテキスト等をexportする
│ └── problem.tsx // 問題コンテキスト
├── -hooks
│ └── use-problem
│ ├── index.ts // 公開するフックをexportする
│ └── use-problem.tsx // 問題コンテキストを使うカスタムフック
├── index.tsx // APIからのデータを取得などを記述する
└── index.lazy.tsx // `/problems`で表示されるコンポーネントを指定する
実際の例としては、src/routes/problems/$problemId
などを参考にしてください。
アプリ全体で使われるグローバルスタイルがここにあります。