react路由如何使用
React 路由的基本使用
React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。
安装 react-router-dom:
npm install react-router-dom
路由配置示例
在入口文件(如 App.js)中配置路由:
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './components/Home';
import About from './components/About';
import Contact from './components/Contact';
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
</Routes>
</Router>
);
}
导航链接
使用 Link 组件实现页面跳转,避免浏览器刷新:
import { Link } from 'react-router-dom';
function Navbar() {
return (
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
<Link to="/contact">Contact</Link>
</nav>
);
}
动态路由
通过冒号 : 定义动态参数,在组件中通过 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>;
}
嵌套路由
通过嵌套 Route 实现层级路由结构:
<Route path="/dashboard" element={<Dashboard />}>
<Route path="settings" element={<Settings />} />
<Route path="analytics" element={<Analytics />} />
</Route>
在父组件中使用 Outlet 渲染子路由:
import { Outlet } from 'react-router-dom';
function Dashboard() {
return (
<div>
<h1>Dashboard</h1>
<Outlet />
</div>
);
}
编程式导航
通过 useNavigate 实现代码控制跳转:
import { useNavigate } from 'react-router-dom';
function LoginButton() {
const navigate = useNavigate();
return (
<button onClick={() => navigate('/dashboard')}>
Login
</button>
);
}
路由守卫
通过高阶组件或自定义逻辑实现权限控制:
function PrivateRoute({ element }) {
const isAuthenticated = checkAuth();
return isAuthenticated ? element : <Navigate to="/login" />;
}
// 使用方式
<Route path="/admin" element={<PrivateRoute element={<AdminPanel />} />} />






