리액트는 싱글 페이지 어플리케이션이다. 리액트 라우터 돔으로 멀티 페이지 앱을 만들 수 있다.
참고: 넥스트js에서는 라우팅 기능 포함됨. 따라서 cra로 작업할 때에 리액트 라우터 돔 사용
참고 코드: https://github.com/cryptojang/to-do-list-dr/tree/master
npm i react-router-dom
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Main from "./pages/main";
import A from "./pages/a";
import B from "./pages/b";
import C from "./pages/c";
const App = () => {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Main />} />
<Route path="/a" element={<A />} />
<Route path="/b" element={<B />} />
<Route path="/c" element={<C />} />
</Routes>
</BrowserRouter>
);
};
export default App;
import { Link } from "react-router-dom";
const Main = () => {
return (
<div className="bg-blue-100 min-h-screen flex flex-col justify-center items-center">
<div>Main</div>
<div className="flex gap-8">
<Link to="/a">a</Link>
<Link to="/a">b</Link>
<Link to="/a">c</Link>
</div>
</div>
);
};
export default Main;
id 값에 1,2,3,4, 등 들어올 수 있다
(http://localhost:3002/user/5 처럼)
코인별 소개 페이지 같이 반복적인 거 줄일 수 잇음
<Route path="/user/:id" element={<User />} />