일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- til
- firestoredatabase
- CSS
- Cloud
- Github Pages
- bootstrap
- useEffect
- jQuery
- nosql
- Protocol
- http
- Boostrap
- IntersectionObserver
- github
- data
- SQL
- this
- TMDB
- API
- web
- REACT
- JavaScript
- W
- supabase
- url
- 배포
- db
- HTML
- Fetch
- Database
- Today
- Total
072DATA
Next.js 메타데이터, 동적 메타데이터, params 본문
Metadata 설정
Metadata는 Next.js에서 페이지의 메타데이터를 설정하는 객체이며
사용자 경험을 개선하는 데 중요하고 SEO와 각 페이지의 고유한 정보를 설정할 수 있음
// 전체 layout.tsx
export const metadata: Metadata = {
title: "LoL",
description: "롤 정보 페이지",
icons: {
icon: "/images/fav2.png",
},
};
- title: 브라우저 탭에 표시되는 페이지 제목
- description: 페이지 설명으로, 주로 검색 엔진에서 사용됨
- icons: 브라우저의 탭에 표시될 아이콘의 경로 설정
근데 이제 icons의 경우 public/images 폴더 안에 이미지를 넣어서 사용했는데
public/images를 src 밖에 즉 루트 경로에 두지 않으면 이미지를 읽어오지 못한다
또 jpg파일이 아닌 png나 ico와 같은 파일 형식으로 넣어주어야 잘 읽어오는 듯 하다
동적 Metadata
또 동적으로 메타데이터를 설정해야 하는 경우가 있다
id값에 따른 상세페이지가 그 예시인데 그럴 경우 아래 코드 예시처럼 작성이 가능한데
export function generateMetadata({ params }: Props) {
return {
title: `${params.id} 상세페이지`,
description: `${params.id}의 정보를 제공하는 상세페이지`,
};
}
generateMetadata 함수는 Next.js에서 동적 라우팅을 사용할 때, 각 페이지에 대한 메타데이터를 생성하는 데 사용되고
이 함수는 페이지가 렌더링될 때 해당 페이지에 맞는 제목과 설명을 동적으로 설정할 수 있게 해준다
그 안에 title이나 description은 위 내용의 설명과 같아서 생략하는데 여기서 params에 대한 기록을 조금 해야할 듯 싶다
params ->
params는 부모 경로부터 시작해서 [](대괄호)로 감싸진 세그먼트의 정보를 읽어오는데
만약 부모/[자식1]/자식2/[자식3] 이런식으로 URL 경로가 지정되어 있다면
params 속에는 객체 형식으로
{자식1: "설정된 자식의 데이터", 자식3: "셋째"}
이렇게 데이터가 담기게 된다 따라서 params.id는 [id] 세그먼트의 데이터를 추출하여 사용된 것!
끝으로 메타 데이터를 설정하면서 아주 궁금했던
params에 대한 의문도 해결할 수 있어서 좋았따 끄으읕!
'FrontEnd > Next.js' 카테고리의 다른 글
OOTW 프로젝트 - 글 작성 구현하기 ( 이미지 업로드 ) (2) | 2024.10.18 |
---|---|
next.js supabase 이미지 업로드 (0) | 2024.10.15 |
Next.js 4가지 렌더링 (1) | 2024.10.02 |
Next.js에서의 라우팅 (페이지 이동) (2) | 2024.09.30 |
Next.js 특징 정리 (0) | 2024.09.27 |