react中如何路由
路由基础配置
在React中实现路由通常使用react-router-dom库(适用于Web应用)。通过BrowserRouter或HashRouter包裹整个应用,并配置Route组件定义路径与组件的映射关系。
安装依赖:
npm install react-router-dom
基础示例:
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './Home';
import About from './About';
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Router>
);
}
动态路由与参数传递
通过:定义动态路径参数,使用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>
);
}
编程式导航通过useNavigate钩子:

import { useNavigate } from 'react-router-dom';
function LoginButton() {
const navigate = useNavigate();
return <button onClick={() => navigate('/dashboard')}>Login</button>;
}
嵌套路由
通过Outlet组件实现嵌套路由的占位渲染:
<Route path="/dashboard" element={<DashboardLayout />}>
<Route path="profile" element={<Profile />} />
<Route path="settings" element={<Settings />} />
</Route>
// DashboardLayout组件内:
import { Outlet } from 'react-router-dom';
function DashboardLayout() {
return (
<div>
<h1>Dashboard</h1>
<Outlet /> {/* 子路由内容在此渲染 */}
</div>
);
}
路由守卫与重定向
通过Navigate组件或useNavigate实现权限控制:
function PrivateRoute({ children }) {
const isAuthenticated = checkAuth(); // 自定义权限检查
return isAuthenticated ? children : <Navigate to="/login" />;
}
// 使用方式:
<Route path="/admin" element={<PrivateRoute><AdminPanel /></PrivateRoute>} />
路由懒加载
结合React.lazy和Suspense实现组件懒加载:
const About = React.lazy(() => import('./About'));
function App() {
return (
<Suspense fallback={<div>Loading...</div>}>
<Route path="/about" element={<About />} />
</Suspense>
);
}






