[React] react-router-dom의 Link 컴포넌트와 a 태그 페이지 전환 차이점

나는야 토마토·2022년 1월 21일
0

React

목록 보기
3/9
post-thumbnail

React 에서는 일반적으로 react-router-dom 패키지를 이용하여 페이지 전환을
하지만 jsp혹은 일반 html에서는 <a>태그를 이용해서 페이지 전환을 한다.

<a> 태그

  • 페이지를 전환하는 과정에서 페이지를 새로 불러오기 때문에 애플리케이션이 들고 있던 상태들을 모두 날려버리게 됨

  • 렌더링된 컴포넌트들도 모두 사라지고 다시 처음부터 렌더링

Link 컴포넌트

  • 페이지를 전환하면, 페이지를 새로 불러오지 않고 애플리케이션은 그대로 유지한 상태에서 HTML5 History API를 사용하여 페이지의 주소만 변경

  • Link컴포넌트 자체는 <a>태그로 이루어져 있지만, 페이지 전환을 방지하는 기능이 내장


그래서 이 둘이 어떤 차이점이 있다고?

그 해답은 바로 페이지 새로 고침의 여부!!! 이다.

Link태그는 브라우저 주소만 바꿀 분 페이지 자체를 새로 고침하지 않기 때문에 렌더링된 컴포넌트의 state가 유지되어 SPA로 동작할 수 있다.


[ 정리 ]
<a>태그를 사용하게 되면 리액트 앱이 지니고있는 상태들도 초기화되고, 렌더링된 컴포넌트도 모두 사라지고 새로 렌더링을 하게된다. 그러므로 <Link>태그를 이용하는 것이 좋다!!!

profile
토마토마토

0개의 댓글