1. 라이브러리 설치하기
npm install react-router-dom @types/react-router-dom
2. src > index.tsx 파일에 App 컴포넌트 BrouserRouter 컴포넌트로 감싸주기
BrouserRouter 컴포넌트는 웹앱에 HTML5의 History API를 사용해 페이지를 새로 불러오지 않고도 주소를 변경하고
현재 주소의 경로와 관련된 정보를 리액트 컴포넌트에서 사용할 수 있도록 해준다.
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { BrowserRouter } from "react-router-dom";
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
3. App.tsx에서 Routes, Route 컴포넌트 적용하기
전체를 <Routes>로 감싸고 하위 컴포넌트인 <Route>에 라우팅 경로 (path)와 적용할 컴포넌트 (element)를 속성으로 넣어준다.
import "./App.css";
import { Routes, Route } from "react-router-dom";
import Home from "./pages/Home";
import RecommendMenu from "./pages/RecommendMenu";
import FavoriteRecipe from "./pages/FavoriteRecipe";
import RecommendDiet from "./pages/RecommendDiet";
function App() {
return (
<Routes>
<Route path="/" element={<Home />} />
<Route path="/recommend-menu" element={<RecommendMenu />} />
<Route path="/recommend-diet" element={<RecommendDiet />} />
<Route path="/favorite-recipe" element={<FavoriteRecipe />} />
</Routes>
);
}
export default App;
'Study' 카테고리의 다른 글
| [React] Eslint 오류 해결하기 (no-else-return, jsx-a11y) (0) | 2024.10.15 |
|---|---|
| [React + TS] useRef 사용시 The expected type comes from property 'ref' which is declared here on type 에러 (+ useRef 3가지 정의) (1) | 2024.09.05 |
| [React] 리액트 훅 - useRef (0) | 2024.07.26 |
| [Next.js 14] styled-component 사용 시 "className did not match" 에러 (0) | 2024.07.24 |
| [모던 리액트 Deep Dive 스터디] 웹사이트 보안을 위한 리액트와 웹페이지 보안 이슈 (1) | 2024.04.28 |