라우팅 기본 사항
1️⃣ App Router
- Nextjs 13 버전에서 React Server Components 를 기반으로 새롭게 구축 하였다.
- app 이라는 이름의 디렉토리를 통해 기본 레이아웃을 정의한다.
- 기본적으로 내부 컴포넌트는 React Server Components 이다.
use client
예약어를 사용하여 Client Components를 사용할 수도 있다.
(Server Components에 대한 자세한 내용은 추후에 다루도록 하겠다.)
2️⃣ 폴더와 파일의 역할
- 폴더는 경로를 정의하는 데 사용된다.
- 파일은 경로 세그먼트에 표시되는 UI를 만드는 데 사용된다.
- 경로의 각 폴더는 경로 세그먼트를 나타낸다. 각 경로 세그먼트는 URL 경로 의 해당 세그먼트 에 매핑된다.
- 파일 이름 규칙
layout
: 세그먼트 및 해당 자식에 대한 공유 UIpage
: 경로의 고유한 UI를 제공하고 경로를 공개적으로 접근 가능하게 만듬loading
: 세그먼트 및 해당 자식에 대한 UI 로딩not-found
: 세그먼트 및 해당 자식에 대한 UI를 찾을 수 없음error
: 세그먼트 및 해당 자식에 대한 오류 UIglobal-error
: 글로벌 오류 UIroute
: 서버 측 API 엔드포인트template
: 전문화된 재렌더링 레이아웃 UIdefault
병렬 경로에 대한 fallback UI
- 중첩 경로
- 경로를 중첩하고 싶을때에는 폴더를 중첩하여 만들면 된다.
- ex) /dashboard/settings 경로는 app > dashboard > settings 순서로 폴더가 중첩되어 있다.
3️⃣ 구성 요소 계층
- 경로 세그먼트의 특수 파일에 정의된 React 구성 요소는 특정 계층 구조로 렌더링 된다.
- 아래 순서대로 계층 구조를 가짐
- layout.js
- template.js
- error.js (오류 경계에서 잡힘)
- loading.js (서스펜스 경계에서 잡힘)
- not-found.js (오류 경계에서 잡힘)
- page.js 또는 중첩 layout.js(부모 세그먼트의 구성요소 안에 중첩됨)
4️⃣ 공동배치
- page.js 나 route.js 가 아닌 다른 폴더 내의 파일들은 공개적인 주소가 되지 않는다.
5️⃣ 고급 라우팅 패턴
- 병렬 경로(Parallel Routes): 동일한 레이아웃 내에서 하나 이상의 페이지를 동시에 또는 조건부로 렌더링 가능하다.
- ex) 대시보드 => (team) + (analytics)
- 경로 가로채기(Intercepting Routes): 현재 페이지의 맥락을 유지하면서 다른 경로의 맥락을 표시할 수 있다.
- ex) 모달 => (url을 통해 모달 컨텐츠를 공유하능하게 함), (이전 경로로 이동 === 모달 닫기), (앞으로 이동 === 모달 열기)
📚 REFERENCE
'FE > NextJS' 카테고리의 다른 글
NextJS 공식문서 파헤치기 (Middleware) (1) | 2024.12.17 |
---|---|
NextJS 공식문서 파헤치기 (Error Handling) (0) | 2024.12.10 |
NextJS 공식문서 파헤치기 (Caching) (1) | 2024.11.15 |
NextJS 공식문서 파헤치기 (Linking and Navigating) (5) | 2024.11.14 |
NextJS 공식문서 파헤치기 (Defining Routes, Pages, Layouts and Templates) (1) | 2024.11.14 |