React Router는 React 애플리케이션에서 라우팅을 처리하기 위한 라이브러리입니다. 이를 통해 앱이 전체 페이지를 다시 로드하지 않고도 다양한 구성요소와 보기 사이를 탐색할 수 있어 사용자 경험이 원활해집니다.
react-router-dom을 설치하여 시작하세요.
npm install react-router-dom
BrowserRouter, 경로 및 경로를 사용하여 기본 라우팅 설정:
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Home = () => <h2>Home</h2>; const About = () => <h2>About</h2>; const App = () => { return ( <Router> <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </Router> ); }; export default App;
더 복잡한 앱의 경우 경로를 중첩할 수 있습니다. 상위 구성 요소에 중첩 경로를 설정하는 방법은 다음과 같습니다.
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Dashboard = () => <h2>Dashboard Home</h2>; const Profile = () => <h2>Your Profile</h2>; const DashboardLayout = () => { return ( <div> <nav> <Link to="/dashboard">Home</Link> <Link to="/dashboard/profile">Profile</Link> </nav> <Routes> <Route path="/" element={<Dashboard />} /> <Route path="profile" element={<Profile />} /> </Routes> </div> ); }; const App = () => { return ( <Router> <Routes> <Route path="/dashboard/*" element={<DashboardLayout />} /> </Routes> </Router> ); }; export default App;
동적 라우팅을 사용하면 URL에 매개변수를 전달할 수 있습니다. 동적 경로를 정의하고 액세스하는 방법은 다음과 같습니다.
import { useParams } from 'react-router-dom'; const User = () => { const { id } = useParams(); return <h2>User ID: {id}</h2>; }; const App = () => { return ( <Router> <nav> <Link to="/user/1">User 1</Link> <Link to="/user/2">User 2</Link> </nav> <Routes> <Route path="/user/:id" element={<User />} /> </Routes> </Router> ); }; export default App;
보호된 경로를 구현하려면 사용자 정의 PrivateRoute 구성 요소를 생성할 수 있습니다.
import { Navigate, Outlet } from 'react-router-dom'; const useAuth = () => { const user = { loggedIn: true }; // Replace with actual auth logic return user && user.loggedIn; }; const PrivateRoute = () => { const isAuth = useAuth(); return isAuth ? <Outlet /> : <Navigate to="/login" />; }; const App = () => { return ( <Router> <Routes> <Route path="/login" element={<Login />} /> <Route path="/dashboard" element={<PrivateRoute />}> <Route path="" element={<Dashboard />} /> </Route> </Routes> </Router> ); }; export default App;
때때로 양식 제출 후와 같이 프로그래밍 방식으로 탐색하고 싶을 수도 있습니다. React Router v6에서 useNavigate 후크를 사용하세요.
import { useNavigate } from 'react-router-dom'; const Login = () => { const navigate = useNavigate(); const handleLogin = () => { // Login logic here... navigate('/dashboard'); }; return ( <div> <h2>Login</h2> <button onClick={handleLogin}>Login</button> </div> ); }; export default Login;
포괄 경로를 생성하여 404(찾을 수 없음) 오류를 처리합니다.
const NotFound = () => <h2>404 - Page Not Found</h2>; const App = () => { return ( <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="*" element={<NotFound />} /> </Routes> </Router> ); }; export default App;
대규모 애플리케이션의 경우 지연 로딩 경로를 사용하면 성능이 향상될 수 있습니다. React.lazy() 및 Suspense를 사용하여 지연 로딩을 구현하는 방법은 다음과 같습니다.
import React, { Suspense, lazy } from 'react'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; const Home = lazy(() => import('./Home')); const About = lazy(() => import('./About')); const App = () => { return ( <Router> <Suspense fallback={<div>Loading...</div>}> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </Suspense> </Router> ); }; export default App;
위 내용은 React 라우팅 마스터하기: 애플리케이션 탐색을 위한 완벽한 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!