서버로부터 동적인 데이터를 가져오는 방법중 getInitialProps이 있다.
getInitialProps 는 컴포넌트디드마운트,컴포넌트윌마운트 같은 라이프사이클의 일종으로 넥스트가 임의로 추가해준 라이프 사이클이다.
getInitialProps은 어떤 작업보다도 최초로 실행된다.
( 컴포넌트디드마운트보다도 우선적으로 실행됨)
서버쪽에서 실행될 동작을 수행 할 수있고,
프론트에서도 실행되고 서버에서도 실행된다.
예제
function Page({ stars }) {
return <div>Next stars: {stars}</div>
}
Page.getInitialProps = async (ctx) => {
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const json = await res.json()
return { stars: json.stargazers_count }
}
export default Page
receives a single argument called context, it's an object with the following properties:
pathname - Current route. That is the path of the page in /pages
query - Query string section of URL parsed as an object
asPath - String of the actual path (including the query) shown in the browser
req - HTTP request object (server only)
res - HTTP response object (server only)
err - Error object if any error is encountered during the rendering
https://velog.io/@baramofme/Next.js-%EA%B3%B5%EC%8B%9D-Docs-%ED%9D%9D%EA%B8%B0