일반적으로 우리는 한 화면에 모든 것을 담을 수 없기에 주소별로 화면을 구분 짓는다. 예를 들어
리액트에서는 어떻게 할 수 있을까?
react-router dom은 우리가 하고싶은 것을 하게 해준다. 먼저 리액트 앱에 react-router-dom을 설치 해보자.
npm install react-router-dom
작성일 기준으로 v6가 최신 버전이기때문에 v6기준으로 설명하도록 하겠다. 다른 버전은 문법이 다를 수 있기 때문에 주의바람
import { BrowserRouter, Route, Routes } from "react-router-dom";
function App() {
return (
<div>
<BrowserRouter>
<Routes>
<Route path="main" element={<Main />} />
<Route path="login" element={<Login />} />
</Routes>
</BrowserRouter>
</div>
);
}
import { useNavigate } from 'react-router-dom';
function Main() {
const navigate = useNavigate();
return (
<div>
<button onClick={() => navigate("/login")}>로그인</button>
</div>
);
}
이전 버전에서는 useHistory로 사용했지만 v6에서는 useNavigate로 변경되었다. 기본적으로 이동할 경로를 입력해서 url을 조작할 수 있다.
navigate('url',{ option }); 형태로 옵션에 state, reaplce( default = false ) 여부 등을 설정 할 수 있다.