npm i react-router-dom
# 만약 TS 환경이라면 아래의 패키지도 설치해주자.
npm i @types/react-router-dom
→ 위처럼 버전을 명시하지 않고 설치할 경우 v6 버전이 설치되니 참고하자!
import { 사용하고자 하는 컴포넌트 } from "react-router-dom"
function App: JSX.Element () {
return (
// 내용
)
}
export default App;
BrowserRouter
의 자식이여야한다.index.tsx
에서 App 컴포넌트를 감싼다.// index.tsx
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter as Router } from 'react-router-dom';
// BrowserRouter 불러오기
import App from './App';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
<Router>
<App />
</Router>
);
Route
는 Routes
자식요소여야 하며, Route
로 원하는 주소(path)
와 표시할 컴포넌트
를 지정하는 방법은 아래와 같다.<Route path=”경로명” element={렌더링할 컴포넌트} />
import { Routes, Route } from "react-router-dom"
function App: JSX.Element () {
return (
<Routes>
<Route path="/" element={<첫화면 />} />
<Route path="경로1" element={<컴포넌트1 />} />
<Route path="경로2" element={<컴포넌트2 />} />
</Routes>
)
}
export default App;
www.주소.com/경로1
인 경우에 컴포넌트1
을 렌더링하고, www.주소.com/경로2
인 경우에 컴포넌트2
를 렌더링한다.to
속성을 이용하며 이동할 경로를 설정해 줄 수 있으며, 해당 링크가 클릭되었을 때 여기서 설정된 경로로 이동한다.<Link to=”경로”> 링크 이름 </Link>
import { Routes, Route, Link } from "react-router-dom"
function App: JSX.Element () {
return (
<Link to="/">첫화면으로 가기</Link>
<Link to="경로1">컴포넌트 1로 가기</Link>
<Link to="경로2">컴포넌트 2로 가기</Link>
<Routes>
<Route path="/" element={<첫화면 />} />
<Route path="경로1" element={<컴포넌트1 />} />
<Route path="경로2" element={<컴포넌트2 />} />
</Routes>
)
}
export default App;
Link
컴포넌트로 만들어진 요소는 html 상에서 a
태그로 생성된다.