react 路由实现
React 路由实现方法
安装 React Router 使用 npm 或 yarn 安装 React Router 的最新版本:
npm install react-router-dom
基本路由配置
在项目的根组件(如 App.js)中引入 BrowserRouter 和 Route 组件:
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Router>
);
}
动态路由与参数传递
通过 :param 语法定义动态路由,并通过 useParams 获取参数:

<Route path="/user/:id" element={<UserProfile />} />
// 在 UserProfile 组件中获取参数
import { useParams } from 'react-router-dom';
function UserProfile() {
const { id } = useParams();
return <div>User ID: {id}</div>;
}
导航与链接
使用 Link 组件实现页面间导航,避免页面刷新:
import { Link } from 'react-router-dom';
function Navbar() {
return (
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
</nav>
);
}
嵌套路由
通过嵌套 Route 组件实现层级路由结构:

<Route path="/dashboard" element={<Dashboard />}>
<Route path="settings" element={<Settings />} />
<Route path="profile" element={<Profile />} />
</Route>
重定向与404页面
使用 Navigate 组件实现重定向,通配符 * 处理未匹配路由:
import { Navigate } from 'react-router-dom';
<Route path="/old" element={<Navigate to="/new" />} />
<Route path="*" element={<NotFound />} />
路由守卫(权限控制) 通过高阶组件或自定义逻辑实现路由保护:
function PrivateRoute({ element }) {
const isAuthenticated = checkAuth();
return isAuthenticated ? element : <Navigate to="/login" />;
}
<Route path="/admin" element={<PrivateRoute element={<AdminPanel />} />} />
代码分割与懒加载
结合 React.lazy 和 Suspense 实现按需加载:
const About = React.lazy(() => import('./About'));
<Route
path="/about"
element={
<Suspense fallback={<div>Loading...</div>}>
<About />
</Suspense>
}
/>
注意事项
BrowserRouter需要服务器支持,静态站点可使用HashRouter。- 路由顺序影响匹配优先级,应从具体到抽象排列。
- 动态路由参数需考虑边界情况,如参数缺失或格式错误。






