react-router-declarative-mode▌
remix-run/agent-skills · updated Apr 8, 2026
Declarative mode is React Router's simplest mode using <BrowserRouter>, <Routes>, and <Route> for basic client-side routing without data loading features like loaders or actions.
React Router Declarative Mode
Declarative mode is React Router's simplest mode using <BrowserRouter>, <Routes>, and <Route> for basic client-side routing without data loading features like loaders or actions.
When to Apply
- Using
<BrowserRouter>for routing - Configuring routes with
<Routes>and<Route> - Navigating with
<Link>,<NavLink>, oruseNavigate - Reading URL params with
useParams - Working with search params using
useSearchParams - Accessing location with
useLocation
References
Load the relevant reference for detailed guidance on the specific API/concept:
| Reference | Use When |
|---|---|
references/routing.md |
Configuring routes, nested routes, dynamic params |
references/navigation.md |
Links, NavLink active states, programmatic nav |
references/url-values.md |
Reading params, search params, location |
Critical Patterns
These are the most important patterns to follow. Load the relevant reference for full details.
Basic Route Setup
Configure routes with JSX using <Routes> and <Route>:
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 Active States
Use NavLink for navigation with active styling:
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>
);
}
Reading URL Params
Use useParams to read dynamic route segments:
import { useParams } from "react-router";
function User() {
const { userId } = useParams();
return <h1>User {userId}</h1>;
}
Working with Search Params
Use useSearchParams for query string values:
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>
);
}
Further Documentation
If anything related to React Router is not covered in these references, you can search the official documentation:
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.7★★★★★54 reviews- ★★★★★Amelia Ghosh· Dec 28, 2024
react-router-declarative-mode is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Hassan Bhatia· Dec 16, 2024
Solid pick for teams standardizing on skills: react-router-declarative-mode is focused, and the summary matches what you get after install.
- ★★★★★Pratham Ware· Dec 12, 2024
Solid pick for teams standardizing on skills: react-router-declarative-mode is focused, and the summary matches what you get after install.
- ★★★★★Alexander Singh· Dec 8, 2024
I recommend react-router-declarative-mode for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Aisha Abbas· Dec 4, 2024
react-router-declarative-mode has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Aisha Choi· Nov 23, 2024
react-router-declarative-mode fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Alexander Harris· Nov 19, 2024
react-router-declarative-mode reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Aisha Khan· Nov 7, 2024
We added react-router-declarative-mode from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Sakshi Patil· Nov 3, 2024
We added react-router-declarative-mode from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Olivia Martin· Oct 26, 2024
react-router-declarative-mode fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
showing 1-10 of 54