리액트 라우터 (React Router)
출처: https://itconquest.tistory.com/entry/ReactJS-React-Router-Dom-설치-및-사용하기
import React from 'react';
import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
function Home() {
return <h2>Home Page</h2>;
}
function About() {
return <h2>About Page</h2>;
}
function App() {
return (
<Router>
<nav>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
</ul>
</nav>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</Switch>
</Router>
);
}
export default App;
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Home from "./pages/Home";
import About from "./pages/About";
function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Home />} /> {/* /home 경로에서 Home 컴포넌트 렌더링 */}
<Route path="/about" element={<About />} />
</Routes>
</Router>
);
}
export default App;
동적 라우팅
import { useParams } from "react-router-dom";
function UserProfile() {
const { id } = useParams(); // URL에서 id 값을 가져옴
return <h2>사용자 ID: {id}</h2>;
}
<Routes>
<Route path="/user/:id" element={<UserProfile />} />
</Routes>
import { Outlet } from "react-router-dom";
function Dashboard() {
return (
<div>
<h2>대시보드</h2>
<Outlet /> {/* 중첩 라우팅된 컴포넌트가 여기에 렌더링됨 */}
</div>
);
}<Routes>
<Route path="/dashboard" element={<Dashboard />}>
<Route path="analytics" element={<Analytics />} />
<Route path="settings" element={<Settings />} />
</Route>
</Routes>
import { Navigate } from "react-router-dom";
function ProtectedRoute({ isAuthenticated, children }) {
return isAuthenticated ? children : <Navigate to="/login" />;
}
<Routes>
<Route path="/profile" element={<ProtectedRoute isAuthenticated={user} ><Profile /></ProtectedRoute>} />
<Route path="/login" element={<Login />} />
</Routes>
/pages/
에 파일만 넣고 라우터 추가components/common/Modal.jsx
)scss
도 따로 관리 가능