Post

Next.js에서 Dynamic Router 활용하기

찾아보거나 알게된 배경


Next.js를 사용하는데, URL params에 들어있는 값을 가져와야하는 경우가 생겼다.

Next.js는 디렉토리 구조가 곧 라우터인데 modusign/document/{id} 형식의 경우에는 파일을 일일이 만들어 줄 수 없는 노릇이다. 파일구조는 정적일 수 밖에 없는데 어떻게 동적으로 라우팅을 할 수 있을까

요약


한줄요약: 파일 명을 대괄호로 감싼다. ex) [id].tsx

menu/{id} 의 형식으로 데이터를 받고 싶다면 menu 폴더에 [id].tsx 파일을 넣으면 된다.

이때 const { id } = router.query 를 이용하여 쿼리에서 값을 받아올 수 있다.

추가로, 이용하고자 하는 값이 하나의 param이 아닌 경우나, /id/a/b/c 같이 여러가지가 붙어있는 경우도 가능하다.

[…id].tsx 파일을 만든다면 배열로 router.query에서 각 값들을 가져올 수 있게 된다.

Next 좋아요 👍

참고자료


https://nextjs.org/docs/pages/building-your-application/routing/dynamic-routes

This post is licensed under CC BY 4.0 by the author.