react-router-declarative-mode について
React Router Declarativeモードで基本的なクライアントサイドルーティングを行う開発者向けのガイダンススキルです。loaderやactionによるデータ機能ではなく、ルート設定、ナビゲーション、URL値の取得を扱います。
主な機能
- 01JSXによるルート設定
- 02クライアントサイドナビゲーションの指針
- 03ルートとURLパラメーターへのアクセス
- 04検索パラメーターの処理
- 05ルーティングに特化した参考資料
活用シーン
- 01基本的なクライアントサイドルートの設定
- 02アクティブ状態のナビゲーションリンク追加
- 03ルートパラメーターの取得
- 04クエリー文字列の処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ remix-run/ agent-skills --skill react-router-declarative-modeインストール後、Claude Code で/react-router-declarative-modeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/navigation.mdrouting.mdurl-values.md詳細
React Router 宣言的モード
宣言的モードは、ローダーやアクションなどのデータ読み込み機能を使わずに、クライアントサイドの基本的なルーティングを行うための、React Router の最もシンプルなモードです。<BrowserRouter>、<Routes>、<Route> を使用します。
適用する場面
- ルーティングに
<BrowserRouter>を使用する <Routes>と<Route>でルートを設定する<Link>、<NavLink>、またはuseNavigateで移動するuseParamsで URL パラメーターを読み取るuseSearchParamsで検索パラメーターを扱うuseLocationでロケーションにアクセスする
リファレンス
特定の API や概念について詳しく知るには、該当するリファレンスを参照してください。
| リファレンス | 使用する場面 |
|---|---|
references/routing.md | ルート、ネストされたルート、動的パラメーターの設定 |
references/navigation.md | リンク、NavLink のアクティブ状態、プログラムによる移動 |
references/url-values.md | パラメーター、検索パラメーター、ロケーションの読み取り |
重要なパターン
以下は、特に重要なパターンです。詳細については、該当するリファレンスを参照してください。
基本的なルート設定
<Routes> と <Route> を使って JSX でルートを設定します。
import { BrowserRouter, Routes, Route } from "react-router";
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="about" element={<About />} />
<Route path="dashboard" element={<Dashboard />}>
<Route index element={<DashboardHome />} />
<Route path="settings" element={<Settings />} />
</Route>
<Route path="users/:userId" element={<User />} />
</Routes>
</BrowserRouter>
);
}
NavLink のアクティブ状態
アクティブ時のスタイルを適用したナビゲーションには、NavLink を使用します。
import { NavLink } from "react-router";
function Nav() {
return (
<nav>
<NavLink
to="/"
end
className={({ isActive }) => (isActive ? "active" : "")}
>
Home
</NavLink>
<NavLink
to="/dashboard"
className={({ isActive }) => (isActive ? "active" : "")}
>
Dashboard
</NavLink>
</nav>
);
}
URL パラメーターの読み取り
動的なルートセグメントを読み取るには、useParams を使用します。
import { useParams } from "react-router";
function User() {
const { userId } = useParams();
return <h1>User {userId}</h1>;
}
検索パラメーターの扱い
クエリー文字列の値には、useSearchParams を使用します。
import { useSearchParams } from "react-router";
function SearchResults() {
const [searchParams, setSearchParams] = useSearchParams();
const query = searchParams.get("q");
return (
<div>
<input
value={query || ""}
onChange={(e) => setSearchParams({ q: e.target.value })}
/>
<p>Results for: {query}</p>
</div>
);
}
その他のドキュメント
React Router に関する内容がこれらのリファレンスで扱われていない場合は、公式ドキュメントを検索してください。
コメント
Markdown 対応