이번 포스팅에서는 React 에서 화면전환에 사용되는 react-router-dom 에서 useHistory 와 useLocation 에 대해 알아보려고 한다.
일단 react-router-dom 은 별도의 설치가 필요하므로 진행해준다.
npm install react-router-dom
Router 구성은 생략하도록 하겠다.
const history = useHistory(); const onSearchSubmit = () => { const { searchTerm } = getValues(); history.push({ pathname: "/search", search: `?term=${searchTerm}`, state: { searchTerm, } }); }
useHistory Hook
위 코드는 가장 간단하게 사용하는 방법인데, pathname 은 이동 할 곳을 가르킨다. 그리고 search 는 URL 에서
Query (?)
state
* 참고: push 가 아닌 replace 로 한다면, Navigate 에 남지 않음. 뒤로 가기 했을 때 기록이 남지 않는다는 의미
1. useHistory Hook
const location = useLocation(); useEffect(() => { console.log(location); }, [location]);
useLocation 을 통해 받으면 된다.
console 에 찍어보면 왼쪽과 같다.
지금까지 React 에서 화면 전환을 할 때 간단하게 사용가능한 Hook 두 가지에 대해서 알아보았다.