react路由如何配置
React 路由配置方法
安装 React Router
使用 npm 或 yarn 安装 React Router 的 DOM 版本:
npm install react-router-dom
# 或
yarn add react-router-dom
基本路由配置
在项目的根组件(如 App.js)中引入 BrowserRouter 和路由组件:
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './components/Home';
import About from './components/About';
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>;
}
嵌套路由
使用嵌套的 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>
);
}
导航链接
使用 Link 或 NavLink 实现页面跳转:
import { Link } from 'react-router-dom';
function Navbar() {
return (
<nav>
<Link to="/">Home</Link>
<Link to="/about">About</Link>
</nav>
);
}
编程式导航
通过 useNavigate Hook 实现代码控制跳转:
import { useNavigate } from 'react-router-dom';
function LoginButton() {
const navigate = useNavigate();
return (
<button onClick={() => navigate('/dashboard')}>
Login
</button>
);
}
404 路由处理
在路由列表底部添加通配符路径匹配未定义的路由:
<Route path="*" element={<NotFoundPage />} />
路由守卫
通过高阶组件或条件渲染保护私有路由:
function PrivateRoute({ element }) {
const isAuthenticated = checkAuth();
return isAuthenticated ? element : <Navigate to="/login" />;
}
// 使用方式
<Route path="/admin" element={<PrivateRoute element={<AdminPanel />} />} />






