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 33 Link와 useNavigate의 차이 (React Router DOM) 본문

카테고리 없음

[TIL] Day 33 Link와 useNavigate의 차이 (React Router DOM)

y.developer 2023. 11. 20. 23:57
728x90

2023.11.20 월

React에서 상세페이지로 이동할 때 사용되는 React Router DOM의 대표적인 요소 `Link`와 `useNavigate`가 있다.

페이지를 이동한다는 목적은 같은데 과연 어떤 방법으로 사용되며, 그 차이점은 무엇일지 궁금해졌다.

 

Link

선언적인 페이지 이동


React Router DOM에서 제공하는 `Link` 컴포넌트는 페이지 간의 선언적인 링크를 생성하는 데 사용된다.

JSX 안에서 사용되며, 사용자가 클릭할 수 있는 링크를 만들어준다.

이를 통해 페이지 간 이동이 클라이언트 측에서 처리되므로 전체 페이지가 다시 로드되지 않아 부드러운 전환을 제공할 수 있다.

간단한 예를 들어보자.

홈 페이지에서 상세 페이지로 이동하는 링크를 생성하는 코드

<Link to="/detail">상세 페이지로 이동</Link>

 

useNavigate

프로그래밍적인 라우팅 제어


React Router v6에서 도입된 `useNavigate` 훅은 함수를 호출하여 프로그래밍적으로 라우팅을 수행하는 데 사용된다.

이를 통해 자바스크립트 코드 내에서 동적으로 라우팅을 조작할 수 있다.

예를 들어,

버튼 클릭과 같은 이벤트 핸들러에서 상세 페이지로 이동하는 코드를 작성할 수 있다.

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

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

  // 어떤 이벤트 또는 상황에서 상세 페이지로 이동
  const handleNavigate = () => {
    navigate('/detail');
  };

  return <button onClick={handleNavigate}>상세 페이지로 이동</button>;
}

 

어떤 것을 사용해야 하나?

Link vs useNavigate

 

사용할 요소는 프로젝트의 구조 및 요구 사항에 따라 다를 수 있다.

보통은 `Link`가 사용자와의 상호 작용을 위해,

`useNavigate`는 코드나 이벤트 핸들러에서 프로그래밍 방식으로 라우팅을 제어하기 위해 사용된다.

결국, `Link`와 `useNavigate`는 React Router DOM을 사용하여 페이지 간 이동을 다룰 때 각각의 장점을 제공할 수 있다.

프로젝트의 특성에 맞게 선택하여 라우팅을 구현해보자!

 

 


하루를 마치며

상세 페이지로 이동시키는 코드를 작성하기 위해서 React Router DOM에서 어떤 요소를 사용해야 좋을지 알게 되었다.

이제 초반 구조를 설계할 때 고민하는 시간을 더 줄이고, 코드 작성에 집중할 수 있을 것이다!

React는 아직 낯설지만 점점 더 친해지고 있다.

 

 

오늘의 한 줄
선택과 집중

 

728x90