Wellcome to React Router!
사용자가 요청한 URL에 따라 해당 URL에 맞는 페이지를 보여주는 것
React는 SPA이지만 눈속임으로 페이지를 이동하는 것 처럼 보여주는 것
- npm i react-router-dom
import { BrowserRouter } from 'react-router-dom'
<BrowserRouter>
<App />
</BrowserRouter>
<Routes>
<Route path='/' element={<Main/>}></Route>
<Route path='/about' element={<About/>}></Route>
<Route path='/mypage' element={<MyPage/>}></Route>
.
.
.
</Routes>
import { Link } from 'react-router-dom'
<Link to='경로'>링크텍스트</Link>
React 에서 기존에 사용하던 Class를 이용한 코드를 작성할 필요 없이,
state와, Effect등 여러 React 기능을 사용할 수 있도록 만든 라이브러리
함수 컴포넌트도 클래스 컴포넌트처럼 사용할 수 있다.
함수 컴포넌트는 클래스 컴포넌트와 다르게, 모듈로 활용하기가 쉬우므로
서로의 장점을 전부다 가지고 있다.
React Hook 중 하나로, 페이지 이동을 도와주는 함수
import { useNavigate } from 'react-router-dom'
const 변수 = useNavigate()
변수('경로')
Link vs useNavigate
클릭시 바로 이동해야하는 로직 구현 => Link
ex) 클릭시 바로 로그인 페이지로 이동!
페이지 전환 시, 추가 처리 로직이 필요하다면? => useNavigate
ex) 버튼을 클릭했을 때, 로그인 되어 있다면 'My Page'로,
로그인 되어있지 않다면 'Login Page'로 이동!
import { useParams } from 'react-router-dom'
<Route path='/경로/:파라미터변수명' element={컴포넌트}/>
let (파라미터변수) = useParams()
import { useSearchParams } from 'react-router-dom'
<Link to='/detail/1?cate=이상하네'> [1] 하루밖에 안쉬었는데 왜 월요일이죠</Link>
const [query, setQuery] = useSearchParams()
{query.get('pop') && <span>[인기게시글] </span>}
{query.get('cate')} 관련 게시글