[]
에 담으면 dynamic route 가 된다. getStaticPaths()
와 getStaticProps()
두 개의 메소드를 포함해야 한다 import Layout from '../../components/layout'
export default function Post() {
return <Layout>...</Layout>
}
export async function getStaticPaths() {
// Return a list of possible value for id under paths
// Example of paths. {}[]:
// const paths = [
// {
// params: {
// id: 'some-string'
// }
// }
// ]
return {
paths,
fallback: false
}
}
export async function getStaticProps({ params }) {
// Fetch necessary data for the blog post using params.id
return {
props: {
postData: await getPostData(params.id)
}
}
}
getStaticPaths
안의 fallback: false
는 path 를 찾지 못했을 때, 404 페이지를 반환한다. 이외에 'true', 'blocking' 값을 가질 수 있다. 더 자세한 건 여기로!getStaticPaths
에서 전체 product ID 를 배열로 가져오고, getStaticProps
에서 각 상품의 데이터를 가져온다. 다 잡아내는 라우트를 만들기도 가능하다. 파일의 괄호 [] 안에 쩜쩜쩜만 추가하면 된다
return [
{
params: {
// Statically Generates /posts/a/b/c
id: ['a', 'b', 'c']
}
}
//...
]