tanstack-router について
TanStack Router を扱うためのスキルで、ルートツリー、型付きナビゲーション、ルート単位のデータ読み込みを中心に解説します。セットアップ、URL 状態、ローダー、SSR、テスト、本番確認の手順と実装指針を提供します。
主な機能
- 01リポジトリ構成とルーティング方式の確認
- 02ファイルベースのルートツリー案内
- 03型付きナビゲーションと URL 状態のパターン
- 04ローダー、コンテキスト、エラー処理の指針
- 05SSR、テスト、本番環境の検証
活用シーン
- 01TanStack Router のルート追加や変更
- 02型付き検索パラメーターとナビゲーションの実装
- 03ローダー、認証リダイレクト、エラー境界の確認
- 04ルート生成と本番環境での動作検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill tanstack-routerインストール後、Claude Code で/tanstack-routerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/loaders-context-errors.mdnavigation-url-state.mdproduction-testing.mdsetup-route-trees.mdsource-map.md詳細
TanStack Router
TanStack Router に関わる作業、特に @tanstack/react-router、src/routes/**、src/router.tsx、ルートツリーの生成、型安全なナビゲーション、ルートが所有するデータ読み込みに関わる場合は、このスキルを使用してください。
ワークフロー
- まず、ローカルの Router 構成を確認します。
@tanstack/react-router、@tanstack/router-plugin、開発者ツール、アダプター、Query/SSR 統合のパッケージバージョン。- ルーティング方式:ファイルベース、コードベース、仮想ファイルルート、または混在。
- ルートのエントリーポイント:
src/routes/__root.tsx、src/router.tsx、生成されたsrc/routeTree.gen.ts、アプリ/クライアントのエントリー、存在する場合は SSR エントリー。 - 動作に影響するルートオプション:
validateSearch、params、beforeLoad、loaderDeps、loader、pendingComponent、errorComponent、notFoundComponent、search.middlewares、staleTime、gcTime、preload、SSR 統合。
- 現在の動作、新しいバージョン、SSR、テスト、ルート生成、または移行については、ドキュメントを確認します。source-map.md から始めてください。
- セットアップ、インストール、ルートツリー生成、ファイル名、ルートの隣への非ルートモジュール(
-components、-hooks、-lib、…)の配置については、setup-route-trees.md を使用してください。 - リンク、ナビゲーション、パラメーター、検索パラメーター、マスク、URL の状態については、navigation-url-state.md を使用してください。
- ローダー、コンテキスト、認証ガード、Query 統合、エラー/Not Found 境界、プリロード、遅延データについては、loaders-context-errors.md を使用してください。
- SSR、デプロイ時のリライト、テスト、開発者ツール、ESLint、本番環境でのチェックについては、production-testing.md を使用してください。
実装上の判断
- リポジトリがすでにコードベースのルートを使用している場合、またはユーザーから別途指定がある場合を除き、ファイルベースのルーティングを優先してください。
routeTree.gen.tsは生成物として扱ってください。手動で編集せず、リポジトリのバンドラー/CLI フローを通じて再生成してください。- ルートが所有する UI/フック/ヘルパーは、ハイフンで始まるフォルダー(
routeFileIgnorePrefix、デフォルトは-)にまとめてください。routes/の下にハイフンで始まらない非ルートファイルを置かないでください。 - ナビゲーションの型を維持してください。
toにパラメーターやクエリー文字列を補間してパスを組み立てないでください。to、params、search、hashは個別に渡してください。 - URL の検索状態を読み取るすべてのルートで
validateSearchを宣言してください。ローダーが実際に使用する検索フィールドのみを公開するためにloaderDepsを使用してください。 - ルートの UX に関するゲート、リダイレクト、コンテキストの拡張には
beforeLoadを使用してください。ルートガードを、非公開データの認可境界として扱わないでください。 - ルート間で共有する依存関係はルーターコンテキストに置いてください。
beforeLoadやloader内で React フックを直接呼び出さないでください。 - Router 組み込みの SWR ローダーキャッシュと、TanStack Query などの外部キャッシュのどちらを使うか、明示的に決定してください。Query が鮮度を管理する場合は、ルーターのプリロードの stale time を
0に設定し、重複排除は Query に任せてください。Query 5.102 以降では、queryClient.query(...)を使って読み込んでください。ensureQueryData/prefetchQuery/fetchQueryは非推奨です。 - React の
errorComponent/onCatchエラーはunknownとして型付けし、messageを読み取る前に型を絞り込んでください。 - ローダーデータの型を正しく保ち、UI のちらつきを避けるため、Not Found のリソースはローダー内で
notFound()を使って処理してください。
検証
リポジトリに既存のチェックがあれば、それを優先してください。重要な Router の変更では、関連する項目を実施してください。
- 開発/ビルド、または Router CLI コマンドを明示的に実行してルートツリーを生成する。
- ルート参照、パラメーター、検索、ローダー、コンテキストについて型チェックする。
- ルートのマッチング、検索値の検証、ローダー、認証リダイレクト、Not Found/エラー境界、ナビゲーションを対象としたテストを行う。
- 直接読み込み、クライアントナビゲーション、戻る/進む、更新、本番環境でのリライト動作をブラウザーでスモークテストする。
コメント
Markdown 対応