HashRouter는 BrowserRouter가 있기 이전에 많이 사용되었다.
HashRouter를 사용하면, 주소에 #이 붙게 되고 이로인해 SEO에 대응되지 않는다.
또한 HashRouter는 History location을 지원하지 않는다.
위와 같은 이유로 요즘에는 잘 사용되지 않는다.
다만 HashRouter는 BrowserRouter와는 다르게 새로고침을 해도 페이지가 유지된다.
🍞 새로고침 시 BrowserRouter는 경로를 찾지 못하여 에러가 날 수 있다.
🍉 SPA는 index.html 파일 하나로 사이트를 구성하기에 새로고침 시 이 파일에 연결되지 않은 경로가 반영되어 에러가 난다.따라서 정적 사이트를 만들 때는 HashRouter가 사용될 수 있다.
import { BrowserRouter, Switch, Route } from "react-router-dom";
~~ 생략 ~~
<BrowserRouter>
<Switch>
<Route exact path="/">
<Main />
</Route>
<Route exact path="/user">
<User />
</Route>
</Switch>
</BrowserRouter>
import { HashRouter, Switch, Route } from "react-router-dom";
~~ 생략 ~~
<HashRouter>
<Switch>
<Route exact path="/">
<Main />
</Route>
<Route exact path="/user">
<User />
</Route>
</Switch>
</HashRouter>
'React' 카테고리의 다른 글
React 정리 (0) | 2023.04.29 |
---|---|
유지보수하기 좋은 React 코드를 작성하는 방법에 대한 고찰 (0) | 2023.04.13 |
react-router-dom v6 사용하기 (0) | 2023.04.06 |
자식 컴포넌트에게 Ref 전달하기 - forwardRef (0) | 2023.04.03 |
React에서 lottie 사용하기 (0) | 2023.03.19 |