:리액트의 SSR(Server Side Rendering)을 쉽게 구현하게 도와주는 프레임워크
CSR(Client Side Rendering)
: 렌더링이 클라이언트 쪽에서 발생,
서버가 요청을 받으면 클라이언트에서 html과 js를 보내 주고 클라이언트가 렌더링함-> 서버로부터 js파일을 모두 다운 받아 실행하기 전까지는 사용자는 볼 수 없음.
SSR(Server Side Rendering)
:서버에서 렌더링을 다 마친 후 클라이언트에 보냄
클라이언트에 전달 되면, 이미 렌더링 준비가 끝났기에 즉시 html이 렌더링 된다. 클라이언트가 JS를 다운 받는 동안 csr과 달리 내용을 볼 수 있지만, 조작은 불가능 하다.
로딩시간 비교
참고자료🚀:
따라하며 배우는 리액트 강의 자료
[SSR vs CSR]https://hahahoho5915.tistory.com/52
pages
public
styles
next.config.js
pre-rendering를 하지 않는다면 초기화면에 아무것도 뜨지 않지만, pre-rendering시 미리 생성된 HTML이 보인다.
Static Generation
: html을 빌드타임에 생성해 둔 후 요청시 마다 재사용
Server-side Rendering
: 각각의 요청마다 html을 생성함
static generation을 사용하는 경우
:user의 요청 전에 pre-rendering이 필요한 경우, 'next build'
server-side rendering을 사용하는 경우
:계속 업데이트 되는 데이터를 보여주는 경우, 속도는 더 느림, 'npm run dev'
참고자료🚀:
따라하며 배우는 리액트 강의 자료
https://nextjs.org/learn/basics/data-fetching/two-forms
https://ppsu.tistory.com/63
getStaticProps
:static generation으로 빌드할때 데이터 불러며 한번 호출, 이후 수정 불가
사용하는 경우
getStaticPaths
: side generation 데이터에 기반하여 pre-render시 동적 라우팅 구현
paths: 어떤 경로가 pre-rendering할지 결정
빌드하는 동안 /posts/1와 /posts/2를 생성
paras: 페이지 이름이 pages/posts/[postId]/[commentId]라면 params는 postId와 commentId 이다.
fallback
false: getStaticPaths로 리턴되지 않으므로 404페이지가 뜸
true:getStaticPaths로 리턴되지 않으면 404가 뜨고, 리턴된다면 fallback 페이지가 뜸
getServerSideProps
:Server Side Rendering 요청시 데이터 불러옴
참고자료🚀:
따라하며 배우는 리액트 강의 자료