logo

JEONGGON

    블로그
github
mode
목 차
down-arrow

Next.js 동적 라우트

2024.02.16.

post-thumbnail

Dynamic Routes

1. Static route

  • 기존의 home/about-us와 같은 url은 정적 route임
  • 동일한 페이지를 출력함


2. Dynamic route

  • home/movies/123123과 같이 사용자의 입력, 문자열, 숫자를 포함하는 url을 동적 route라고 함
  • url의 정보에 따라 동일한 페이지에 다른 정보를 담아서 출력함
  • React의 react-route에서 사용한 /movies/:id와 동일한 기능
  • Next.js에서는 파일시스템(파일 + 폴더)를 사용하여 구현
  • 폴더의 이름에 대괄호([])로 변수 명을 감싸고 지정

Dynamic route 폴더
대괄호를 이용한 Dynamic route 폴더 생성


Dynamic route로 접속 시, 페이지 출력
url에 Dynamic route로 접속 시, 페이지 출력


2-1. url의 parameter 정보 사용하는 방법

  • 해당 페이지 컴포넌트의 props를 콘솔에서 출력해보기
// app/(movies)/movies/page.tsx

export default function MovieDetail(props) {
  console.log(props);
  return <h1>Movie</h1>;
}

props 콘솔

  • 백엔드 상에서 params 객체에 id가 담겨있음

- searchParams

  • url에 물음표 키워드(’?‘)를 사용하여 searchParams 정보를 받을 수 있음
url = http://localhost:3000/movies/123123?region=kr&page=2

searchParams
searchParams 백엔드 출력


- params 출력하기

// app/(movies)/movies/page.tsx

export default function MovieDetail({ params: { id } }: { params: { id: string } }) {
  return <h1>Movie {id}</h1>;
}
  • 비구조화 할당을 통해 params의 id를 가져오는데 params의 id의 타입은 string임을 props로 전달하여 id를 출력

params의 id 출력
params의 id 출력

nextjsframeworkreactdynamicroute
profile

조정곤

주니어 프론트엔드 개발자

github
linkedin
instagram
email

< 이전글

Next.js not-found, Link, useRouter, usePathname, Rendering

다음글 >

Next.js 클라이언트/서버 컴포넌트 비교

Nextjs 포스트 (13)

down-arrow