React
[ React ] React Router DOM Hooks
Yujzu
2024. 3. 6. 11:50
# useNavigate
: 경로를 변경해준다.
import { useNavigate } from "react-router-dom";
const Example = () => {
let navigate = useNavgate();
navigate('./success', { replace: true } );
}
# navigate(-1)
: 기존 방문 기록을 기준으로 뒤로 이동 (브라우저 히스토리 활용)
- 사용시 주의점
고객센터 눌렀을때 고객센터>공지사항 경로(/service-center?tab=notice) 를 지정해주지 않고
고객센터((/service-center) 로만 지정해줘서
같은 페이지에서 상태만 변경된 것((/service-center => /service-center?tab=notice)으로 기록되어서
이전 페이지로 이동되지 않았다.
# useNavigate()와 useLocation()으로 데이터 주고받기
1. useNavigate의 두번째 인자의 state 속성으로 데이터를 보낸다.
2. useLocation 의 state 속성으로 받기
navigate(location.pathname, { // 현재 경로를 나타내는 문자열
state: {
userId: user.uid
},
replace: true // 라우팅 동작에 대한 추가 옵션
});
// 페이지를 다시이동 state를 비우고
https://jofestudio.tistory.com/66
# useLocation
: 현재 위치 객체를 반환한다.
현재 위치가 변경될 때마다 일부 side effect를 수행하려는 경우에 유용할 수 있다.
import { useLocation } from "react-router-dom"
function App () {
let location = useLocation();
useEffect(()=>{
~~
}, [location])
return (~~)
}
# useParams
: 동적 라우트의 path의 :id 부분이 무엇인지 알려준다.
<Route path="user/:userId" element ={<UserPage />} />
// UserPage
import { useParams } from "react-router-dom"
const UserPage = () => {
let params = useParams();
return (
<p>{params.userId}</p> // path의 userId 가 뭔지 알려준다.
)
}