react-router-declarative-mode
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseReact Router Declarative Mode
React Router 声明式模式
Declarative mode is React Router's simplest mode using , , and for basic client-side routing without data loading features like loaders or actions.
<BrowserRouter><Routes><Route>声明式模式是React Router中最简单的模式,使用、和实现基础的客户端路由,无需loader或action等数据加载功能。
<BrowserRouter><Routes><Route>When to Apply
适用场景
- Using for routing
<BrowserRouter> - Configuring routes with and
<Routes><Route> - Navigating with ,
<Link>, or<NavLink>useNavigate - Reading URL params with
useParams - Working with search params using
useSearchParams - Accessing location with
useLocation
- 使用进行路由管理
<BrowserRouter> - 使用和
<Routes>配置路由<Route> - 使用、
<Link>或<NavLink>进行导航useNavigate - 使用读取URL参数
useParams - 使用处理搜索参数
useSearchParams - 使用获取位置信息
useLocation
References
参考资料
Load the relevant reference for detailed guidance on the specific API/concept:
| Reference | Use When |
|---|---|
| Configuring routes, nested routes, dynamic params |
| Links, NavLink active states, programmatic nav |
| Reading params, search params, location |
加载相关参考资料以获取特定API/概念的详细指导:
| 参考资料 | 适用场景 |
|---|---|
| 配置路由、嵌套路由、动态参数 |
| 链接、NavLink激活状态、编程式导航 |
| 读取参数、搜索参数、位置信息 |
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 and :
<Routes><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>
);
}使用和通过JSX配置路由:
<Routes><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
NavLink 激活状态
Use for navigation with active styling:
NavLinktsx
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>
);
}使用实现带有激活样式的导航:
NavLinktsx
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
读取URL参数
Use to read dynamic route segments:
useParamstsx
import { useParams } from "react-router";
function User() {
const { userId } = useParams();
return <h1>User {userId}</h1>;
}使用读取动态路由片段:
useParamstsx
import { useParams } from "react-router";
function User() {
const { userId } = useParams();
return <h1>User {userId}</h1>;
}Working with Search Params
处理搜索参数
Use for query string values:
useSearchParamstsx
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>
);
}使用处理查询字符串值:
useSearchParamstsx
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>搜索结果:{query}</p>
</div>
);
}Further Documentation
更多文档
If anything related to React Router is not covered in these references, you can search the official documentation:
如果这些参考资料未涵盖任何与React Router相关的内容,你可以查阅官方文档: