useNavigate랑 window.location.href의 라우팅 차이

그냥차차·2024년 9월 6일

리엑트

목록 보기
8/10
post-thumbnail

1. useNavigate

ㄱ. 장점

  • 전체 페이지가 새로고침되지 않고 필요한 부분만 갱신됨. SPA에서 빠르고 부드러운 사용자 경험을 제공.
  • 페이지 이동 시 React 상태나 리덕스 상태 등 클라이언트 측 상태가 초기화되지 않고 유지됨.
    React Router 통합: React Router와 완벽히 통합되어 라우팅이 매끄럽고, 코드 가독성이 높음.

ㄴ. 단점

  • React Router가 설정된 프로젝트에서만 사용할 수 있음.
  • 기존의 서버 기반 라우팅에서는 사용할 수 없음.
  • 클라이언트 사이드에서만 라우팅이 이루어지기 때문에 SEO를 고려한 SSR과 함께 사용해야 하는 경우가 많음.

2. window.location.href

ㄱ. 장점

  • 모든 브라우저에서 기본적으로 지원되며, 특정 라이브러리나 프레임워크에 의존하지 않음.
  • 단순한 HTML 프로젝트나 서버 사이드 렌더링 환경에서 적합.
  • 전체 페이지를 다시 로드하므로 검색 엔진에서 페이지를 쉽게 인덱싱할 수 있음.

ㄴ. 단점

  • 페이지 이동 시 전체 페이지가 새로고침되므로 UX가 떨어질 수 있음. SPA에서는 특히 비효율적.
  • 페이지가 리로드되면서 모든 클라이언트 측 상태가 초기화됨. React 상태, 리덕스 상태 등이 리셋됨.

3. 차이점

ㄱ. 라우팅 방식

  • useNavigate는 클라이언트 측에서 이루어지는 SPA 방식의 라우팅임. 페이지가 리로딩되지 않고 URL만 바뀌며, 필요한 컴포넌트만 다시 렌더링됨. 빠른 반응 속도와 상태 유지가 핵심.
  • window.location.href는 브라우저의 기본 라우팅 방식으로, URL이 변경되면 전체 페이지가 리로딩됨. 서버로 새로운 요청을 보내고 전체 페이지를 다시 렌더링하는 방식으로 작동함.

ㄴ. 언제 사용하면 좋을까?

  • useNavigate는 SPA 구조에서 페이지 이동 시 상태를 유지해야 하거나, 빠른 네비게이션이 필요한 경우에 유용함. React 프로젝트에서 내부 페이지 이동에 최적화되어 있음.
  • window.location.href는 전체 리로딩이 필요한 경우나 React Router 같은 라이브러리를 사용하지 않는 경우, 또는 외부 링크나 서버 측 라우팅을 다루어야 할 때 적합함.
  • 즉, SPA 프로젝트에서 상태 유지와 빠른 페이지 전환이 필요하면 useNavigate를, 전통적인 서버 사이드 렌더링 환경이거나 SEO를 고려한 페이지 리로딩이 필요하면 window.location.href를 쓰는 게 좋음.
profile
개발작

0개의 댓글