[ react] React Router useNavigate(), useLocation()
2024.04.25
UseNavigate
react router에서 지원하는 Hook. 지정한 경로로 페이지를 이동시킬 수 있다. 근데 두 번째 인자로 이동시킬 페이지에 함께 보낼 데이터를 지정할 수 있다! 예시는 다음과 같다.
import { useNavigate } from 'react-router-dom';
// ...생략
const navigate = useNavigate();
// ...생략
const gotoMain = () => {
navigate("/main", {
state: {
userId: user.uid
}
});
};
UseLocation
react router에서 지원하는 Hook. useNavigate를 이용해 전송된 데이터를 받을 수 있다. 예시는 다음과 같다.
import { useLocation } from 'react-router-dom';
// ...생략
const location = useLocation();
// ...생략
const [userId, setUserId] = useState(
location.state?.userId
);
location의 state프로퍼티에 내가 보낸 데이터들이 담겨있다고 보면 된다. 참고로, Link태그를 통해서도 데이터를 보낼 수 있다고 한다. 예시는 다음과 같다.
또한 참고로, useNavigate의 두 번째 인자로는 state가 아니라 replace라는 것도 보낼 수 있다
import { useNavigate } from 'react-router-dom';
// ...생략
const navigate = useNavigate();
// ...생략
const gotoMain = () => {
navigate("/main", {replace: true});
};
기본값은 false이고, true로 돼있으면 페이지가 이동된 뒤 뒤로가기를 하더라도 방금 페이지로 돌아올 수 없고, 루트로 돌아오게 된다고 한다. false는 뒤로가기가 가능.작성자
꿘쓰
작성일
2024.04.25
