모든 컴포넌트가 Server Component 이라서 Client Component 사용하려면 따로 설정해야한다.
보통 유저와 상호작용하는 곳을 제외하고 모두 Server Component를 사용한다.
언제 어떤 컴포넌트가 필요한지는 Next.js 공식 문서에 적혀있으니 확인해보자
next/link
와 next/router
모듈을 이용하여 구현할 수 있다.서버 컴포넌트에서는 useRouter
를 사용하지 못하기 때문에 "use client"
를 입력하여 클라이언트 컴포넌트로 만들어 주어야 한다.
app
디렉토리 내에 파일을 만들어 사용한다.HTTP 메서드
를 바로 적어 사용한다. Dynamic route도 지원한다. // app/'api/todos/[id]/route.js
import { NextResponse } from "next/server";
export const GET = async (req, { params }) => {
const { id } = params;
const response = await fetch(
`https://jsonplaceholder.typicode.com/todos/${id}`
);
const todo = await response.json();
return NextResponse.json(todo);
};
// getServerSideProps - SSR
fetch(URL, { cache: 'no-store' });
// getStaticProps - SSG
fetch(URL);
// getStaticProps - ISR
fetch(URL, { next: { revalidate: 10 } }); // 10초
NextResponse.redirect
NextResponse.rewrite
전체적으로 Nextjs에 대해 알아보았는데 렌더링과 공식문서를 여러번 읽어보면서 복습하면 이해가 될 것 같다. 내일은 용어를 한번 정리해야겠다.