Create React App(CRA)에 특별히 routing을 위한 로직이 들어있지 않기 때문에, 가장 인기 있는 routing solution인 react-router 를 추가해서 routing을 구현
import React from "react";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Nav from "./components/Nav/Nav";
import Footer from "./components/Footer/Footer";
import Login from "./pages/Login/Login";
import Signup from "./pages/Signup/Signup";
import Main from "./pages/Main/Main";
function Router() {
return (
<BrowserRouter>
<Nav /> 바뀌지 않는 부분
<Routes> 바뀌는 부분
<Route path="/" element={<Login />} />
<Route path="/signup" element={<Signup />} />
<Route path="/main" element={<Main />} />
</Routes>
<Footer /> 바뀌지 않는 부분
</BrowserRouter>
);
}
export default Router;
Index.js에서 라우터를 렌더링
중간 다리역할을 하는것이 Router.js임
Index.js에서 Main.js나 Login.js를 임포트하는 것이 아니라
Router.js에서 임포트 할 것
<Link>
- 내부 변화하는 부분만 감지해서 보여줌 header, footer부분은 고정되어 있음
<a>
외부링크로 이동해야 할 경우 아예 다른 사이트로 이동할 경우 아예 갈아 끼움
<Link>
태그가 성능이 더 좋다.