🔎 유용한 정보
리액트 앱은 SPA(Single Page Application) 구조입니다.
하지만 실제로는 여러 페이지처럼 보이게 만들 수 있습니다.
이를 가능하게 해주는 도구가 바로 React Router입니다.
1. React Router란?
- URL에 따라 보여줄 컴포넌트를 바꿔주는 라이브러리
- 페이지 새로고침 없이 화면만 전환 가능 (SPA의 핵심)
2. 설치하기
npm install react-router-dom
버전 확인은 package.json에서 "react-router-dom": "^6" 이상이면 OK
3. 기본 구성 요소 (v6 기준)
구성요소 역할
<BrowserRouter> | 라우팅 기능 활성화 |
<Routes> | 라우트 목록 |
<Route> | 경로별 컴포넌트 지정 |
<Link> | 페이지 이동 (a 태그 대신 사용) |
useParams() | URL 파라미터 읽기 |
4. 예제: 게시글 목록 & 상세보기 라우팅
📄 App.js
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "./Home";
import PostDetail from "./PostDetail";
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/post/:id" element={<PostDetail />} />
</Routes>
</BrowserRouter>
);
}
export default App;
📄 Home.js
import { Link } from "react-router-dom";
const posts = [
{ id: 1, title: "리액트 기초 배우기" },
{ id: 2, title: "useState 완전 정복" },
];
function Home() {
return (
<div>
<h1>📚 게시글 목록</h1>
<ul>
{posts.map((post) => (
<li key={post.id}>
<Link to={`/post/${post.id}`}>{post.title}</Link>
</li>
))}
</ul>
</div>
);
}
export default Home;
📄 PostDetail.js
import { useParams } from "react-router-dom";
function PostDetail() {
const { id } = useParams();
return (
<div>
<h2>📝 게시글 상세</h2>
<p>현재 게시글 ID는: {id}</p>
</div>
);
}
export default PostDetail;
5. 실행 결과
- / 주소에 접속하면 게시글 목록이 보임
- 게시글 제목 클릭 → /post/1 등으로 이동
- URL 파라미터로 ID를 받아 상세 내용 출력 가능
마무리
이제 여러분은 React 앱에서 페이지 전환을 구현할 수 있습니다!
React Router는 실무에서 거의 필수이며,
다음 강의에서는 중첩 라우팅, 페이지 네비게이션 등 고급 기능도 확장해볼 수 있습니다.
'📁 [4] 개발자 정보 & 코드 노트 > REACT' 카테고리의 다른 글
📘 리액트 강의 11편 - Axios로 서버와 통신하고 API 연동하기 (0) | 2025.04.12 |
---|---|
📘 리액트 강의 10편 - Redux Toolkit으로 전역 상태 관리하기 (0) | 2025.04.12 |
📘 리액트 강의 8편 - Context API로 전역 상태 공유하기 (0) | 2025.04.12 |
📘 리액트 강의 7편 - 커스텀 훅과 성능 최적화 (useMemo, useCallback) (0) | 2025.04.12 |
📘 리액트 강의 6편 - useEffect로 외부 데이터 가져오기 (0) | 2025.04.12 |
🔎 유용한 정보