metadata를 동적으로 적용하기

generateMetadata

동적 라우팅 경로인 경우, 메타데이터 객체를 반환하는 generateMetadata 함수를 사용할 수 있다.

interface IParams {
  params: { id: string };
}

export async function generateMetadata({ params: { id } }: IParams) {
  const movie = await getMovie(id);
  return {
    title: movie.title,
  };
}

title을 동적으로 변경하는 방법

페이지를 이동할 때마다 {title} | Movie 와 같은 형식으로 title을 보여주고 싶을 때, 모든 컴포넌트마다 Metadata를 만들지 않고, %s를 사용해서 동적으로 title을 변경시킬 수 있다.

interface IParams {
  params: { id: string };
}

export async function generateMetadata({ params: { id } }: IParams) {
  const movie = await getMovie(id);
  return {
    title: {
      absolute: '',
      default: 'Next.js Tutorial - Movie',
      template: '%s| Movie',
    }
  };
}
  • app/page.tsx에 접근했을 때 title 👉🏻 Next.js Tutorial - Movie

  • app/blog/page.tsx에 접근했을 때 title 👉🏻 Blog | Movie


Static Site Generation (SSG)에서 generateMetadata 사용

Last updated