티스토리 뷰

Page and Layout

1. Page

페이지는 경로에 대한 고유한 UI이다.
page.js 파일에서 export 한다.

파일 구조

app ㄴ page.js ㄴ dashboard 	ㄴ page.js 

코드

// app/page.js // -> '/' URL의 UI가 된다. export default function Page() {   return <h1>Hi! Home page!</h1>; } 
// app/dashboard/page.js // -> '/dashboard' URL의 UI가 된다. export default function Page() {   return <h1>Hi! Dashboard page!</h1>; } 

2. Layout

Layout은 여러 Page 같에 공유되는 UI이다.
레이아웃은 네비게이션 간에 상태를 유지하고 대화형을 유지하며 다시 렌더링되지 않는다. 그리고 중첩될 수 있다.

  • children props를 사용.

파일 구조

app ㄴ layout.ts ㄴ page.ts ㄴ dashboard 	ㄴ layout.ts 	ㄴ page.ts 

코드

// app/dashboard/layout.ts  export default function DashboardLayout({  	children }: {  	children: React.ReactNode }) {   return (  	  <section> 		  <nav></nav>  		  {children}  		</section>  	) } 

2.1 RootLayout

app 디렉토리의 최상위 수준에서 정의되며 모든 경로에 적용된다.

코드

// app/layout.ts  export default function RootLayout({  	children }: {  	children: React.ReactNode }) {   return (  		<html lang="en">  			<body>{children}</body>  		</html> 	) } 

2.2 중첩 레이아웃

파일 구조

app 
ㄴ layout.ts 
ㄴ page.ts 
   ㄴ dashboard 	
      ㄴ layout.ts 	
      ㄴ page.ts

루트 레이아웃 (app/layout.ts)에 대시보드 레이아웃 (app/dashboard/layout.ts)가 중첩되어진다.


(옵시디언에서 작성되었습니다.)

'[개발] > Next - 공식문서' 카테고리의 다른 글

[Routing] 08 Paraller Routes  (0) 2023.12.16
[Routing] 04 경로 그룹 (Route Groups)  (0) 2023.12.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함