Next.js/Next.js

Data Fetching

hihijh826 2024. 2. 12. 15:16
728x90
반응형
SMALL

 

📍getStaticProps

- getStaticProps 함수를 async로 export 하면, getStaticProps에서 리턴되는 props를 가지고 페이지를 pre-render함.

build time에 페이지를 렌더링 함

- useEffect로 데이터를 가져왔을 때보다 훨씬 빠르게 가져옴

 

 

☑️사용 할 때

- 페이지를 렌더링하는 데 필요한 데이터를 사용자의 요청보다 먼저 build 시간에 가져 올 수 있을 때

- 데이터를 headless CMS에서 가져올 때

- 모든 사용자에게 같은 데이터를 보여줄 때

-페이지는 미리 렌더링되어야 하고 매우 빨라야 할 때 

 

☑️사용법

 

 

☑️예시

 

 

📍getStaticPaths

- 동적 라우팅이 필요할 때 getStaticPaths로 경로 리스트를 정의하고, html에 build 시간에 렌더링됨

- nextjs는 pre-render에서 정적으로 getStaticPaths에서 호출하는 경로들을 가져옴

 

☑️사용법

 

☑️paths

- 어떤 경로가 pre-render 될지 결정

- pages/posts/[id].js 라는 이름의 동적 라우팅을 사용하는 페이지가 있다면 아래와 같이 됨

1. 빌드하는 동안 /posts/1과 /posts/2를 생성하게됨

2. 이렇게 경로가 생성되면 getStaticProps를 이용해서 해당 페이지들의 html 생성

 

☑️fallback

- 만약 들어간 페이지의 경로가 getStaticPaths에서 리턴하는 paths에 없을 때 처리

 -- 예를 들어 localhost: 3000/posts/10000으로 진입 , 근데 10000이 없음

- false라면 getStaticPaths로 리턴되지 않는 것은 모두 404 페이지가 뜸

- true라면 fallback 페이지가 뜸 

 

 

☑️예시

 

📍getServerSideProps

- next는 각 요청마다 리턴되는 데이터를 getServerSideProps로 pre-render함

- A 페이지에 들어간 후 다른 페이지에 갔다가 다시 A페이지에 들어가도 다시 생성. 최신 데이터가 반영됨

 

☑️사용할 때

- 요청할 때 데이터를 가져와야하는 페이지를 미리 렌더해야 할 때 사용

 

☑️사용법

 

☑️예시

 

// This gets called on every request

// 각 요청마다 불러옴 

728x90
반응형
LIST