const Page = ({ stars }) =>
<div>
Next stars: {stars}
</div>
Page.getInitialProps = async ({ req }) => {
const res = await fetch('//api.github.com/repos/zeit/next.js')
const json = await res.json()
return { stars: json.stargazers_count }
}
export default Page
getInitialProps는 아래와 같은 속성을 사용 할 수 있다.
pathname - 현재 URL 경로
query - 객체로 구문 분석된 URL의 문자열 쿼리
asPath - 브라우저에 표시되는 실제 경로의 문자열
req - HTTP 요청 객체 (server 전용)
res - HTTP 응답 객체 (server 전용)
err - 렌더링중 에러가 발생한 경우, 에러 객체
Next는 데이터 요구사항이 없는 경우 페이지가 정적(미리 렌더링 할 수 있음)인지 자동으로 확인한다.
getInitialProps나 getServerSideProps를 사용할 경우 이 기능을 쓸 수 없다.
위 경우가 아니라면 Next.js는 페이지를 정적 HTML로 사전에 렌더링하여 자동으로 페이지를 최적화한다.
사전 렌더링중에는 query 객체가 존재하지 않기에 Router 기능이 작동하지 않는다.
Next 9.3버전 이후로 사용을 권장하지 않는다
안녕하세요. 해당 문서를 보고 궁금한 것이 있어서 글을 남깁니다.
Next9.3버전 이후로 사용을 권장하지 않는다고 하신 것이 자동 정적 최적화를 말씀하시는건가요?