mcpField
R
react-router-framework-mode

react-router-framework-mode

github.com/remix-run開発1343.6k 回インストール19 週間前に更新
リポジトリ

react-router-framework-mode について

React Router Frameworkモードでフルスタックアプリを開発する人向けのガイダンススキルです。ルーティング、データ操作、レンダリング方式を、型安全なルートモジュールや実装パターンとともに解説します。

主な機能

  1. 01ファイルベースルーティングの指針
  2. 02ローダーと変更アクション
  3. 03SSR、SPA、事前レンダリング
  4. 04型安全なルートモジュール
  5. 05テーマ別のAPIガイダンス

活用シーン

  1. 01アプリのルート設定
  2. 02データ読み込みとフォーム処理
  3. 03レンダリング方式の選択
  4. 04セッションと保護ルートの実装

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/remix-run/agent-skills --skill react-router-framework-mode

インストール後、Claude Code で/react-router-framework-modeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
actions.md
data-loading.md
error-handling.md
middleware.md
navigation.md
pending-ui.md
rendering-strategies.md
route-modules.md
routing.md
sessions.md
special-files.md
type-safety.md

詳細

React Router フレームワークモード

フレームワークモードは、ファイルベースのルーティング、サーバーサイド・クライアントサイド・静的レンダリング戦略、データの読み込みとミューテーション、型安全なルートモジュール API を備えた、React Router のフルスタック開発エクスペリエンスです。

適用する場面

  • 新しいルートを設定する(app/routes.ts)
  • loader または clientLoader でデータを読み込む
  • action または clientAction でミューテーションを処理する
  • <Link>、<NavLink>、<Form>、redirect、useNavigate でナビゲーションする
  • 保留中・読み込み中の UI 状態を実装する
  • SSR、SPA モード、または事前レンダリングを設定する(react-router.config.ts)
  • 認証を実装する

リファレンス

特定の API/概念について詳しく知るには、関連するリファレンスを読み込んでください。

リファレンス使用する場面
references/routing.mdルート、ネストされたルート、動的セグメントの設定
references/route-modules.mdすべてのルートモジュールのエクスポートを理解する
references/special-files.mdroot.tsx のカスタマイズ、グローバルナビゲーション/フッター、フォントの追加
references/data-loading.mdローダー、ストリーミング、キャッシュを使ったデータの読み込み
references/actions.mdフォーム、ミューテーション、検証の処理
references/navigation.mdリンク、プログラムによるナビゲーション、リダイレクト
references/pending-ui.md読み込み状態、オプティミスティック UI
references/error-handling.mdエラーバウンダリ、エラー報告
references/rendering-strategies.mdSSR、SPA、事前レンダリングの設定
references/middleware.mdミドルウェアの追加(v7.9.0+ が必要)
references/sessions.mdCookie セッション、認証、保護されたルート
references/type-safety.md自動生成されるルートの型、型のインポート、型安全性

バージョン互換性

一部の機能には、特定の React Router バージョンが必要です。実装前に必ず確認してください。

npm list react-router
機能最小バージョン備考
ミドルウェア7.9.0+v8_middleware フラグが必要
コアフレームワーク機能7.0.0+loaders、actions、Form など

重要なパターン

以下は、従うべき最も重要なパターンです。詳細は関連するリファレンスを読み込んでください。

フォームとミューテーション

検索フォーム — setSearchParams を使った onSubmit ではなく、<Form method="get"> を使用します。

// ✅ Correct
<Form method="get">
  <input name="q" />
</Form>

// ❌ Wrong - don't manually handle search params
<form onSubmit={(e) => { e.preventDefault(); setSearchParams(...) }}>

インラインのミューテーション — ページ遷移を引き起こす <Form> ではなく、useFetcher を使用します。

const fetcher = useFetcher();
const optimistic = fetcher.formData?.get("favorite") === "true" ?? isFavorite;

<fetcher.Form method="post" action={`/favorites/${id}`}>
  <button>{optimistic ? "★" : "☆"}</button>
</fetcher.Form>;

パターンの全容については、references/actions.md を参照してください。

レイアウト

グローバル UI は root.tsx に配置します — ナビゲーション/フッター用に別のレイアウトファイルを作成しないでください。

// app/root.tsx - add navigation, footer, providers here
export default function App() {
  return (
    <div>
      <nav>...</nav>
      <Outlet />
      <footer>...</footer>
    </div>
  );
}

セクション固有のレイアウトには、ネストされたルートを使用します。references/routing.md を参照してください。

ルートモジュールのエクスポート

meta では、非推奨の data ではなく loaderData を使用します。

// ✅ Correct
export function meta({ loaderData }: Route.MetaArgs) { ... }

// ❌ Wrong - `data` is deprecated
export function meta({ data }: Route.MetaArgs) { ... }

すべてのエクスポートについては、references/route-modules.md を参照してください。

さらに詳しいドキュメント

React Router に関する情報がこれらのリファレンスにない場合は、公式ドキュメントを検索できます。

https://reactrouter.com/docs

コメント