https://github.com/lopun/inflearn-next-tutorial
Next.js란?
프로젝트 생성
npx create-next-app@14 [프로젝트명]
폴더 구조 및 각 파일 설명
next.js의 폴더는 route 구조와 동일하게 작동합니다.
app/movies
→ “http://localhost:3000/movies”에 해당하는 코드 작성 가능app/movies/[id]
→ “http://localhost:3000/movies/1”에 해당하는 코드 작성 가능 (Dynamic Route)next.js의 각 폴더의 파일들은 파일명에 따라 역할이 정해져있습니다.
page.tsx(js)
app/page.js
→ “/” 페이지app/dashboard/page.js
→ “/dashboard” 페이지layout.tsx(js)
route.ts(js)
export async function GET(request: Request) {}
export async function HEAD(request: Request) {}
export async function POST(request: Request) {}
export async function PUT(request: Request) {}
export async function DELETE(request: Request) {}
export async function PATCH(request: Request) {}
// If `OPTIONS` is not defined, Next.js will automatically implement `OPTIONS` and set the appropriate Response `Allow` header depending on the other methods defined in the route handler.
export async function OPTIONS(request: Request) {}
Link
Next.js에서 a태그 대신 사용됩니다.
일반적인 a 태그보다 클라이언트 사이드 라우팅에 도움이 되고 Next.js에게 URL 정보도 알려줄 수 있어서 최대한 Link를 사용하시는 것을 권장드립니다.
import Link from 'next/link'
export default function Page() {
return <Link href="/dashboard">Dashboard</Link>
}
https://www.youtube.com/watch?v=Ujjdn2wMIew&list=PLZKTXPmaJk8Lx3TqPlcEAzTL8zcpBz7NP