React Router로 라우팅 마스터하기 ①
웹사이트를 만들다 보면 "홈, 소개, 상품" 등 여러 화면 간 페이지 이동이 필요하다. 사용자가 화면을 매끄럽게 오갈 수 있도록 하는 것이 바로 "라우팅"인데 react-router 라이브러리를 사용하여 기
damdadira.tistory.com
지난 포스팅에 이어서 이번에는 URL에 포함된 파라미터를 추출하여 각기 다른 세부 정보를 보여주는 페이지를 구현해보려 한다.
useParams 사용해 보기
- React Router에서 URL 파라미터 값을 가져오는 훅(Hook)
- :videoId 같은 동적 경로 변수에 들어온 값을 컴포넌트 안에서 쉽게 가져올 수 있게 해준다.
App.jsx
import { createBrowserRouter, RouterProvider } from "react-router";
import Root from "./pages/Root"
import Home from "./pages/Home"
import NotFound from "./pages/NotFound"
import Videos from "./pages/Videos"
import VideoDetail from './pages/VideoDetail';
import './App.css'
const router = createBrowserRouter([
{
path: "/", // URL 주소
element: <Root />, // 보여줄 컴포넌트
errorElement: <NotFound />, // 에러가 발생했을 때 보여줄 컴포넌트
children: [
{
index: true, // 해당 경로의 기본 컴포넌트로 사용
element: <Home />
},
{
path: "/videos",
element: <Videos />
},
{
path: "/videos/:videoId", // URL 파라미터(videoId) 선언
element: <VideoDetail />
},
]
}
])
function App() {
return (
<RouterProvider router={router} />
)
}
export default App
VideoDetail.jsx
import { useParams } from 'react-router'
export default function VideoDetail() {
const { videoId } = useParams();
return <div>VideoDetail: {videoId}</div>
}
실행 화면
파라미터에 직접 id를 입력해 줘야 VideoDetail 페이지에 접근할 수 있다.

폴더 구조
📦src
┣ 📂assets
┣ 📂components
┃ ┗ 📜Navbar.jsx
┣ 📂pages
┃ ┣ 📜Home.jsx
┃ ┣ 📜NotFound.jsx
┃ ┣ 📜Root.jsx
┃ ┣ 📜VideoDetail.jsx
┃ ┗ 📜Videos.jsx
┣ 📜App.css
┣ 📜App.jsx
┣ 📜index.css
┗ 📜main.jsx
공식 문서 참고
useParams
useParams | React Router
reactrouter.com
'FrontEnd > React' 카테고리의 다른 글
| Vite 스타일링 가이드 ② - Styled-Components (0) | 2025.06.26 |
|---|---|
| Vite 스타일링 가이드 ① - Tailwind CSS (8) | 2025.06.24 |
| React Router로 라우팅 마스터하기 ① - Outlet, Link (2) | 2025.06.23 |
| FSD(Feature-Sliced Design)로 깔끔하게 폴더 구조 관리하기 (0) | 2025.06.23 |
| Vite 설치 방법(React 프로젝트 기준) (0) | 2025.06.20 |