Development/React.js

Next - getServerSideProps

moretz0921 2022. 4. 7. 23:27

getServerSideProps : page가 요청 받을때 마다 호출되어 pre-rendering

- SSR (Server Side Rendering) 개념
- pre-render가 꼭 필요한 동적 데이터가 있는 page에 사용
- 매 요청마다 호출, 내용을 언제든 동적으로 수정이 가능

 
문법
1 ) Return Values
: props, notFound, redirect 의 3 가지 리턴값을 가진다.

- props : Page 컴포넌트의 props에 전달될 객체를 서버로부터 받아온 데이터를 가공하여 전달해주는데 활용
- notFound : boolean 값을 가지며 { notFound: true } 가 리턴되면 해당 페이지는 404 응답과 함께 Page Not Found 화면으로 이동
- redirect : 개발자가 지정한 경로로 페이지를 리다이렉트하기 위해 사용되는 값

export const getServerSideProps = async ({ params }) => {
  const res = await fetch(
    `url`
  );
  const abc = await res.json();
  return {
    props: { abc, id: params.id },
  };
};



2) Parameter 
: getServerSideProps는 context 라는 파라미터를 받는다.

context: {
    params: 페이지가 Dynamic Route 를 사용한 경우 들어오는 데이터, 
    pages/[id].tsx 라면 params 에는 id 값이 들어온다.

    req: Request 정보 
    res: Response 정보 
    query: 쿼리 스트링 데이터가 담겨있다.
    preview: Preview 모드 사용 유무 (boolean)
    previewData: Preview 모드 사용시 전달된 데이터
    resolvedUrl: Request 된 URL 의 좀 더 일반화된 버전의 url
    locale: 현재 locale 정보
    locales: 지원되는 모든 locale 정보
    defaultLocale: 기본 locale 정보
}

 

출처

 

https://yohanpro.com/posts/nextjs/data-fetching

 

Next.js에서 data-fetching하기 - Yohan's Developer Diary

Next.js팀 (Vercel)팀은 2020년 3월 10일에 9.3버전의 Next.js를 공개했다. 달라진 것 중에서 가장 눈에 띄는 것은 단연 data-fetcing 하는 메소드가 두 개가 추가된 것이다. 즉 pages 폴더 아래에 있는 엔드포인

yohanpro.com

https://woobiblog.com/Javascript/Nextjs_Data_Fetching_getServerSideProps

 

[Next.js] Data Fetching - getServerSideProps

오늘은 Next.js 에서 제공하는 렌더링 방식 중 SSR 을 구현하는 방법을 알아보고, SSR 에서 데이터를 가져오는 작업을 어떻게 수행하는지 알아보려 한다. 1. 페이지를 SSR 로 렌더링하기 기본적으로

woobiblog.com

https://beside-lab.tistory.com/entry/Nextjs-getStaticProps-vs-getServerSideProps-%EC%B0%A8%EC%9D%B4%EC%99%80-%ED%99%9C%EC%9A%A9

 

Next.js - getStaticProps vs. getServerSideProps, 차이와 활용

Next.js 9.3 버전부터는 pre-rendering을 위한 data fetching을 위한 기존 기능인 getInitialProps가 getStaticProps, getServerSideProps, getStaticPaths로 분리되었습니다. 모두 pre-render가 필요한 경우에만..

beside-lab.tistory.com