Next.js

[Next.js] Parallel Routes

note-for-development 2024. 5. 22. 19:42

 

Slots: @폴더이름

slots를 사용하여 한 페이지에서 일부분을 동시에 라우팅할 수 있다.

route segments가 아니므로 URL 주소에 포함되지 않는다.

레이아웃의 props로 내려간다. 

slot 안에  레이아웃을 추가하여 독립적으로 탐색할 수 있다. 탭을 만들 때 유리하다.

 

 

Active state and navigation

소프트 탐색(navigation): 클라이언트 측 탐색 중에 Next.js는 부분 렌더링을 수행하여 슬롯 내의 하위 페이지를 변경하는 동시에 다른 슬롯의 활성 하위 페이지는 현재 URL과 일치하지 않더라도 유지한다. html을 완전히 새로 만들지 않고, 새로고침을 하지 않아도 렌더링 할 수 있다.(Link)
하드 탐색(navigation): 전체 페이지 로드(브라우저 새로 고침) 후 Next.js는 현재 URL과 일치하지 않는 슬롯의 활성 상태를 확인할 수 없다. 대신 일치하지 않는 슬롯에 대해 default.js 파일을 렌더링하거나 default.js가 존재하지 않는 경우 404를 렌더링한다.(a)

 

default.js: 일치하지 않는 라우트에 대한 풀백

상위 폴더에서 하위 폴더가 렌더링 되지 않은 상태에 대한 default.js

slots에서 일치하지 않는 항목에 대한 default.js

 

useSelectedLayoutSegment(s)

parallelRoutesKey 파라미터를 받아 slot에서 활성화 된 route segment를 읽을 수 있다.

 

Modals : 라우트를 이중으로 열 수 있는 모달

intercepting routes + parallel routes => modal 생성 가능

URL을 통해 모달 콘텐츠를 공유할 수 있다.
페이지를 새로 고칠 때 모달을 닫는 대신 컨텍스트를 유지한다.
뒤로 이동 시 이전 경로로 이동하지 않고 모달을 닫는다.
앞으로 이동 시 모달을 다시 연다.