여기서 내부에 랜더링되는 페이지들이 위의 Layout.js 코드 속 Outlet에 표현된다.
user/3 과 같이 뒤에 파라미터로 id를 받는 경우는 user/:id로 표현
//App.js
import './App.css';
import { BrowserRouter, Route, Routes } from "react-router-dom";
import About from './views/About';
import Home from './views/Home';
import Users from './views/Users';
import UserDetail from './views/UserDetail';
import NotFound from './views/NotFound'
import Layout from './views/Layout';
function App() {
return (
<BrowserRouter>
<Routes>
{/* 아무 path 없으면 레이아웃 자동 만들어줌 */}
<Route element={<Layout/>}>
{/* 최초 슬래시로 갔을 때 */}
<Route index element={<Home/>}/>
<Route path="about" element={<About/>}/>
<Route path="user" element={<Users/>}/>
<Route path="user/:id" element={<UserDetail/>}/>
{/* 예외페이지 처리 */}
<Route path="*" element={<NotFound/>}/>
</Route>
</Routes>
</BrowserRouter>
);
}
export default App;
4. UserDetail.js 에서 useParams를 사용하여 파라미터 받기
// views/UserDetail.js
import { useParams } from "react-router-dom"
export default function UserDetail() {
let params = useParams();
return <h1>UserDetail: { params.id }</h1>
}