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 = () =>Home
; const About = () =>About
; const App = () => { return (); }; export default App; } /> } />
더 복잡한 앱의 경우 경로를 중첩할 수 있습니다. 상위 구성 요소에 중첩 경로를 설정하는 방법은 다음과 같습니다.
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const Dashboard = () =>Dashboard Home
; const Profile = () =>Your Profile
; const DashboardLayout = () => { return (); }; const App = () => { return (} /> } /> ); }; export default App; } />
동적 라우팅을 사용하면 URL에 매개변수를 전달할 수 있습니다. 동적 경로를 정의하고 액세스하는 방법은 다음과 같습니다.
import { useParams } from 'react-router-dom'; const User = () => { const { id } = useParams(); returnUser ID: {id}
; }; const App = () => { return (); }; 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 ?: ; }; const App = () => { return ( ); }; 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 (); }; export default Login;Login
포괄 경로를 생성하여 404(찾을 수 없음) 오류를 처리합니다.
const NotFound = () =>404 - Page Not Found
; const App = () => { return (); }; 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 (); }; export default App; Loading...}> } /> } />
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3