728x90
반응형
Router.replace와 Router.push의 차이점
라우터 기록은 stack의 routes처럼 작동함
router.replace를 사용하면 스택 상단을 덮어 씀
router.push를 사용하면 stack의 맨 위에 새 경로가 추가됨
라우터 기록을 사용하면 마지막 페이지로 돌아갈 수 있음
예를 들어, 사용자가 유효하지 않은 경로로 이동하면 router.replace를 사용하여 사용자가 유효하지 않은 경로로 다시 이동하지 못하게 할 수 있음
replace
import React, { useEffect } from 'react';
import Router from 'next/router';
const Signup = () => {
const dispatch = useDispatch();
const { me } = useSelector((state) => state.user);
useEffect(() => {
if (me && me.id) {
Router.replace('/');
}
}, [me && me.id]);
useEffect(() => {
if (signUpDone) {
Router.replace('/');
}
}, [signUpDone]);
return (
<div>singUp</div>
);
};
export default Signup;
뒤로가기시에 그 페이지 안보이도록 하고 싶으면 replace
push
import React, { useEffect } from 'react';
import Router from 'next/router';
const Profile = () => {
const { me } = useSelector((state) => state.user);
useEffect(() => { // 내 정보가 없으면 되돌려보내기
if (!(me && me.id)) {
Router.push('/');
}
}, [me && me.id]);
if (!me) {
return null;
}
return (
<>
<div>Login</div>
</>
);
};
export default Profile;
뒤로가기시에 보여도 괜찮으면 push
반응형
'프로그래밍 > React' 카테고리의 다른 글
styled-components로 ant design 컴포넌트 css 오버라이딩 (0) | 2021.05.11 |
---|---|
Ant Design 사용 방법 (0) | 2021.05.10 |
더미데이터 만드는 유용한 라이브러리(shortid, faker) (0) | 2021.04.27 |
takeEvery, takeLatest, takeLeading (0) | 2021.04.26 |
redux-saga call, fork (0) | 2021.04.22 |