250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

y.developer

[TIL] Day 34 navigate 함수 사용 시 주의사항 (React Router DOM) 본문

카테고리 없음

[TIL] Day 34 navigate 함수 사용 시 주의사항 (React Router DOM)

y.developer 2023. 11. 22. 03:00
728x90

2023.11.21 화

 

React Router의 navigate 함수를 사용할 때 주의할 점이 있다.

특히, 상대 경로와 음수 값을 사용할 때의 주의사항을 다뤄보려고 한다.

 

 

navigate 함수의 사용

React Router에서는 페이지 간 이동을 처리하기 위해 useNavigate 훅을 제공한다.

이를 사용하여 다양한 경로로 이동할 수 있다.

import { useNavigate } from 'react-router-dom';

function MyComponent() {
  const navigate = useNavigate();

  // 부모 경로로 이동
  <button onClick={() => { navigate("../") }}>Move</button>

  // 이전 페이지로 이동
  <button onClick={() => { navigate(-1) }}>Back</button>
}

 

 

주의할 점

navigate 함수와 음수 값

첫 번째 버튼에서는 navigate("../")를 사용하여 부모 경로로 이동하는데,

이것은 상대 경로 정상적으로 동작하는 것을 볼 수 있다.


그러나 두 번째 버튼에서는 navigate(-1)을 사용하여 이전 페이지로 이동하려고 한다.

이 부분에서 주의가 필요하다!

음수 값을 사용하는 경우, 브라우저 히스토리 스택에 이전 페이지가 항상 보장되지 않을 수 있다.

 

해결 방법

이 경우에는 조건문을 추가하여 이전 페이지로 이동할 수 있는지 여부를 확인하는 것이 좋다.

<button onClick={() => { history.length > 1 && navigate(-1) }}>Back</button>

이렇게 함으로써, 브라우저 히스토리 스택에 이전 페이지가 있는 경우에만 뒤로 가기 동작을 수행하게 된다.

 

 

 


하루를 마치며

상세 페이지로 이동시키기 위해서 React Router DOM의 navigate 함수를 사용할 때 오류가 발생할 수 있는 부분을 인지할 수 있었다.

앞으로 페이지 이동 동작을 구현할 때 항상 사용자 경험을 고려하고, 히스토리 스택에 대한 예외 상황을 생각할 수 있을 것이다.

 

 

오늘의 한 줄
뒤로 가기 No
앞으로 가기 Yes



728x90