넥스트js / nextjs /넥스트
next.js 의 getStaticPaths
getStaticPaths
은 production 에서 build 될 때 실행된다. runtime 에 호출되진 않는다.
getStaticPaths
사용(참고):
getStaticPaths
는getStaticProps
와 함께 사용해야만 한다.getStaticPaths
는getServerSideProps
와 함께 사용할 수 없다.- Dynamic Routes 에서
getStaticPaths
를 export 할 수 있다. Dynamic Route도 또한getStaticProps
을 사용한다.- Dynamic Routes 은
pages/post/[pid].js
같은 것들이라고 보면 될 듯([참고]](https://nextjs.org/docs/routing/dynamic-routes))
- Dynamic Routes 은
- page file 아닌 파일(예를 들면, 컴포넌트 폴더)에서
getStaticPaths
를 export 할 수 없다. getStaticPaths
를 page component 의 property 로 export 할 수 없다. standalone함수로 export 해야만 한다.
next dev
에서는 매 request 마다 getStaticPaths
가 호출된다.
paths
변수
참고: paths | getStaticPaths | Next.js
- page 이름이
pages/posts/[postId]/[commentId]
인 경우 params에는 postId와 commentId가 있어야 한다. - page 이름이
pages/[...slug]
와 같은 catch-all routes를 사용하는 경우 parameter에는 array type 의 slug가 포함되어야 한다. 이 배열이['hello', 'world']
인 경우 Next.js는 /hello/world에 page를 정적으로 생성합니다. - page가 선택적인 catch-all routes를 사용하는 경우
null
,[]
,undefined
또는false
를 사용하여 root-most path를 렌더링합니다. 예를 들어,pages/[[...slug]]
에slug: false
를 제공하면 Next.js는/
페이지를 정적으로 생성합니다. pages/product/[slug].tsx
인 경우,paths: [ 'product/notebook', 'product/electro']
등으로 설정하면/product/notebook
,/product/electro
페이지가 생성된다.
...
import { useRouter } from 'next/router'
import { Layout } from '@components/common'
export async function getStaticProps({
params,
locale,
locales,
preview,
}: GetStaticPropsContext<{ slug: string }>) {
...
return {
props: {
pages,
product,
relatedProducts,
categories,
},
revalidate: 200,
}
}
export async function getStaticPaths({ locales }: GetStaticPathsContext) {
...
console.log('namhnamhnamhnamhnamh')
console.log(products)
return {
paths: ['/products/notebook', '/products/tails'],
fallback: 'blocking',
}
}
next.js 의 getStaticProps
실행
next build
할 때 실행된다.fallback: true
를 사용하면, background 로 실행된다.fallback: blocking
을 사용하면, initial render 이전에 실행된다.revalidate
를 사용할때 background 로 실행된다.revalidate()
를 사용할 때getStaticProps
가 background 에서 실행된다.(on-demand)
getStaticProps
의 getStaticPaths
와 관련한 동작(참고)
- build 될때 return 되는 모든경로(any paths) 에 대한
next build
를 하는 동안getStaticProps
는 실행된다. fallback: true
를 사용할 때getStaticProps
는 background 로 실행된다.fallback: blocking
을 사용할 때, initial render 이전에 호출된다.
댓글 없음:
댓글 쓰기