navigate = useNavigate();
프로젝트 중에 팀장이 사용한 navigate('/', { replace: true })
에 대해 정확히 왜 사용하였는지 이해하지 못해 조사해보았다.
일단, replace:true로 설정할때와 설정하지 않을때의 차이점 : true로 설정하면 뒤로가기를 눌렀을때 한번에 이동되지 않는다.
왜일까? replace는 스택의 최상단에 있는 것을 "대체"한다.
- When you use the router.replace, you're overwritting the top of the the stack.
- When using the router.push, it adds a new route to the top of the stack.
예를들어, 홈 → 게시판 → 로그인 순으로 이동한다고 가정한 후,
로그인에서 push("/게시판")을 이용하여 이동하면 히스토리는 홈 → 게시판 → 로그인 → 게시판이 된다.
반면 replace("/게시판)을 이용하여 이동하면 현재 히스토리인 로그인을 날려버리고 홈 → 게시판 → 게시판이 된다.