HTML의 A태그를 확장한 개념이다
Link 컴포넌트는 뷰포트에 링크가 나타나는 순간 해당 페이지의 코드와 데이터를 미리 가져오는
pre-fetching
기능을 지원한다
Link태그는 route 사이에 Client-Side Navigation을 지원한다
useRouter를 사용할 때는 항상 코드 최상단에 "use client"
를 선언해야 한다
대부분 onClick같은 이벤트에서 사용된다
const route = useRouter()
예시처럼 useRouter를 선언하고 사용브라우저에서 실행되는 컴포넌트를 의미한다
코드 최상단에 "use client"
를 선언하면 클라이언트 컴포넌트가 된다
주로 위와 같은 상황에서 CC를 사용한다
서버에서 실행되는 컴포넌트이다
기본적으로 app 폴더 아래에 모든 컴포넌트는 서버 컴포넌트이다
CC 컴포넌트 이외에는 SC를 사용한다
fetch한 데이터는 변하지 않음
Build-time 때만 컴포넌트를 생성하고 이후는 변하지 않는 페이지로 가정하여 static 컴포넌트를 제공하는 것을 말한다
💡 Next.js는 기본적으로 SSG로 동작한다
cache : force-cache
옵션을 주는 방법fetch한 데이터가 가끔 변함
Build-time 때 컴포넌트를 초기 생성하고 이후에는 일정 주기마다 변화를 적용하여 컴포넌트를 제공하는 것을 말한다
next : { revalidate : 5 }
옵션을 주는 방법export const revalidate = 5
추가하는 방법fetch한 데이터는 실시간으로 계속 바뀜
Build-time 때 컴포넌트를 초기 생성하고 이후에는 컴포넌트 요청이 있을 때마다 변화를 적용하여 가장 최신의 데이터를 유저에게 제공한다
cache : "no-cache"
옵션을 주는 방법fetch한 데이터는 실시간으로 계속 바뀜
Build-time 때 컴포넌트를 초기 생성하지 않고 Javascript로 이루어진 리액트 파일을 다운로드 받고 나서 화면이 그려지게 된다