라우팅 처리를 알아보기 전 app전체의 구조를 살펴보자.
https://velog.io/@gyultang
으로 접속하면 gyultang의 벨로그페이지로 이동하고 https://velog.io/@gyultang/Next.js-13버전
으로 이동하면 gyultang의 벨로그에 작성된 Next.js-13버전라는 글을 보여준다. Tree
: 계층구조를 시각화하기 위한 규칙Subtree(하위트리)
: 새 루트(첫번째)에서 시작하여 앞(마지막)에서 끝나는 트리의 일부다.Root(루트)
: 루트 레이아웃과 같은 트리 또는 하위 트리의 첫 번째 노드Leaf(리프)
: URL경로의 마지막 세그먼트와 같이 자식이 없는 하위 트리의 노드URL Segment
: 슬래시로 구분된 URL경로의 일부URL Path
: 도메인 뒤에 오는 URL의 일부라우팅을 설정하기위해 보통 일반적인 웹서버들은 사용자가 /post
로 접속하면 게시글 목록을 보여주세요라고 서버에 코드를 짜놔야 한다. 하지만 Next.js
를 쓰면 이런 과정이 필요없고 폴더와 파일하나만 만들면 자동으로 라우팅이 설정된다.
방법은 아래와 같다.
app
폴더 안에 페이지를 만들 폴더를 만들어준다. page.js
를 만들어주고 페이지 코드를 넣어준다.❗ 넥스트의 app폴더내에 있는 폴더들은 자동으로 URL로 만든다.
리액트에서는 상단바를 만들때 네비 공통 컴퍼넌트를 사용하여 구현했던 것 같다. 그러나 넥스트의 app라우터에는 페이지, 공유 레이아웃 및 템플릿을 쉽게 생성할 수있는 새로운 파일 규칙이 도입되어 더욱 간단하게 상단바를 만들 수 있다.
default
파일에서 리액트 구성 요소를 내보내 레이아웃을 정의할 수 있다. layout.js
구성 요소는 childre n
렌더링 중에 하위 레이아웃 또는 하위 페이지로 채워질 소품을 허용해야한다.
layout.js
가 또 있는 경우import "./globals.css";
import { Inter } from "next/font/google";
import Link from "next/link";
const inter = Inter({ subsets: ["latin"] });
export const metadata = {
title: "Create Next App",
description: "Generated by create next app",
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body className={inter.className}>
<div className="navbar">
<Link href="/">HOME</Link>
<Link href="/list">LIST</Link>
<Link href="/cart">CART</Link>
</div>
{children}
</body>
</html>
);
}
참고자료
NextJS공식문서