개발자
window.performance.getEntriesByType("navigation")[0]의 type이 back_forward인 경우에 뒤로가기로 진입했다는걸 파악하고 있었는데 페이지 이동시에 useNavigate의 replace:true 속성일 때는 해당 옵션이 안나오고 location.replace로 이동시에만 해당 옵션값으로 판별이 가능한데 두개 차이점이 존재하는걸까요,,?
답변 1
인기 답변
react-router-dom의 useNavigate와 웹 API의 window.location.replace()는 서로 다른 방법으로 페이지 내비게이션을 처리합니다. useNavigate는 애플리케이션 내에서 라우팅을 조정합니다. replace: true 옵션을 사용하면, 현재의 페이지 이력을 다음 페이지로 교체합니다. 즉, 뒤로 가기 버튼을 눌렀을 때 이전 페이지로 돌아가지 않습니다. 이 방식은 SPA (Single Page Application) 내부에서 라우팅 변경을 합니다. 실제 페이지 리로드나 외부 네비게이션 이력이 발생하지 않습니다. window.location.replace() 메소드는 웹 API의 일부입니다. 이 메소드를 사용하면, 현재 페이지를 새 URL로 교체하고 이전 페이지를 내비게이션 이력에서 제거합니다. 이 방식은 실제로 페이지를 리로드하고, 외부 네비게이션 이력을 변경합니다. window.performance.getEntriesByType("navigation")[0].type에 대한 참조는 브라우저의 내비게이션 성능 타이밍에 관한 정보를 제공합니다. back_forward 값은 사용자가 '뒤로 가기' 또는 '앞으로 가기' 버튼을 사용하여 페이지를 로드했음을 나타냅니다. useNavigate의 replace: true를 사용하여 페이지 이동을 할 경우, 실제로 브라우저의 내비게이션 이력이 변경되지 않기 때문에 window.performance.getEntriesByType("navigation")[0].type 값에 영향을 주지 않습니다. 반면, window.location.replace()를 사용하면 내비게이션 이력이 실제로 변경되므로 해당 값에 영향을 줄 수 있습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!