Skip to main content

react-router-declarative-mode

Build React applications using React Router's declarative mode with BrowserRouter. Use when configuring routes with JSX, navigating with Link/NavLink, or reading URL params and search params without data loaders or actions.

Source facts

Repository
halo-dev/upage
Last source activity
April 22, 2026 at 04:45
Detected SKILL.md language
English
Stars
557
Forks
105

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
react-router-declarative-mode
description
Build React applications using React Router's declarative mode with BrowserRouter. Use when configuring routes with JSX, navigating with Link/NavLink, or reading URL params and search params without data loaders or actions.
license
MIT
# 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>`, or `useNavigate` - 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>`: ```tsx 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: ```tsx 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: ```tsx 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: ```tsx 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: https://reactrouter.com/docs
View on GitHub