React와 Next의 Router는 분명히 다릅니다.

Yoonezi·2023년 5월 29일
0

ReactNext.js는 둘 다 라우팅을 처리하는 라우터 기능을 제공하지만,
그 구현과 사용 방법에서 차이가 있습니다.

다음은 React와 Next.js의 라우터 사이의 주요 차이점을 설명해드리겠습니다.

클라이언트 사이드 라우팅 vs. 서버 사이드 라우팅

React Router

React Router는 클라이언트 사이드 라우팅 을 구현합니다.

즉, 페이지 전환 시 브라우저에서 자바스크립트를 사용하여 새로운 컴포넌트를 렌더링하고 URL을 변경합니다.

페이지 로딩 후에는 서버에 새로운 HTML을 요청하지 않고 클라이언트 측에서 라우팅을 처리합니다.

Next.js Router

Next.js는 서버 사이드 라우팅 을 기본으로 제공합니다.

페이지 전환이 발생할 때마다 서버에서 새로운 페이지를 사전 렌더링하여 HTML로 제공 합니다.

클라이언트에서는 초기 렌더링된 HTML을 받고 나서부터 클라이언트 사이드 라우팅을 사용하여 페이지 간 전환을 처리합니다.

이러한 접근 방식은 SEO(검색 엔진 최적화)에 유리하며, 초기 페이지 로딩 속도도 개선됩니다.

설치와 설정

React Router

React Router는 별도의 패키지로 설치해야 합니다.

react-router-dom은 React Router의 웹 버전이며, react-router-native은 React Native 앱에서 사용할 수 있는 버전입니다.

설치 후 BrowserRouter 또는 HashRouter와 같은 컴포넌트를 사용하여 라우터를 설정합니다.

Next.js Router

Next.js에는 내장된 라우터가 있으며, 별도의 패키지 설치가 필요하지 않습니다.

파일 시스템 기반의 라우팅 방식을 사용하며, pages 디렉토리 내에 파일 이름을 기준으로 자동으로 경로가 매핑됩니다. 추가적인 설정이 필요하지 않습니다.

데이터 가져오기

React Router

React Router는 컴포넌트가 렌더링될 때 데이터를 가져오는 로직을 구현할 수 있습니다.

주로 useEffect와 같은 훅을 사용하여 비동기 작업을 수행합니다.

Next.js Router

Next.js는 페이지 사전 렌더링 기능을 제공하므로, 페이지가 서버에서 렌더링될 때 서버 측에서 데이터를 가져올 수 있습니다.

getServerSideProps, getStaticProps, getStaticPaths와 같은 특수한 함수를 사용하여 데이터를 가져오고 페이지에 전달할 수 있습니다.

이러한 차이점들로 인해 React Router와 Next.js Router는 다른 사용 사례에 적합합니다.

React Router는 주로 SPA(Single-Page Application)에 적합하며,
Next.js Router는 SSR(Server-Side Rendering)을 제공하므로 SEO가 중요한 멀티페이지 애플리케이션에 적합합니다.

profile
차곡차곡

0개의 댓글