next수업시간에 배운 것에 대해 정리해보자..
다른 데이터를 설명하는 데이터
즉, 특정 데이터의 속성, 구조, 출처, 사용법 등을 설명하는 정보를 포함합니다.
export const metadata = {
title: '페이지 제목',
description: '페이지 설명'
}
// 예제
export const metadata = {
title: "siyeon",
description: "siyeon's Blog",
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
);
}
pages 경로에 파일을 추가하면 자동적으로 route 할 수 있다!
pages
라는 폴더에 라우팅하고 싶은 이름으로 된 파일을 만들어주면 되는 것이다.⭐️ 미리 정의된, 고정된 URL이 아니라 사용자가 접근한 경로 또는 특정 값에 따라 동적으로 변화하는 주소를 의미한다.
export default function Items({ params: { id } }: { params: { id: string } }) {
return (
<div>
<div>물품번호 : {id}</div>
</div>
);
}
/items/5
로 들어가면이와같이 뜬다.
async function getItems(id: string) {
const response = await fetch(`https://dummyjson.com/products/${id}`);
return response.json();
}
id
라는 문자열을 인자로 받아 특정 상품 정보를 가져오는 함수이다.fetch
를 사용하여 https://dummyjson.com/products/{id}
API에서 상품 데이터를 가져온 후, await
키워드로 요청이 완료될 때까지 기다린다.async function getNextItem(id: string) {
const nextId: number = parseInt(id, 10) + 1;
const response = await fetch(`https://dummyjson.com/products/${nextId}`);
return response.json();
}
id
를 기반으로 그 다음 상품의 정보를 가져오는 함수이다.id
를 숫자로 변환한 후, 1을 더해 nextId
값을 생성한다.https://dummyjson.com/products/{nextId}
에서 데이터를 가져온다.export default async function Items({
params: { id },
}: {
params: { id: string };
}) {
const items = await getItems(id);
const nextItem = await getNextItem(id);
return (
<div>
<p>물품번호: {id}</p>
<p>상세설명: {items.description}</p>
<p>다음 항목: {nextItem.description}</p>
</div>
);
}
items.description
을 표시nextItem.description
을 표시async function getItems(id: string) {
const response = await fetch(`https://dummyjson.com/products/${id}`);
return response.json();
}
async function getNextItem(id: string) {
const nextId: number = parseInt(id, 10) + 1;
const response = await fetch(`https://dummyjson.com/products/${nextId}`);
return response.json();
}
export default async function Items({
params: { id },
}: {
params: { id: string };
}) {
const items = await getItems(id);
const nextItem = await getNextItem(id);
return (
<div>
<p>물품번호: {id}</p>
<p>상세설명: {items.description}</p>
<p>다음 항목: {nextItem.description}</p>
</div>
);
}
비동기 처리를 쉽게 다루기 위해 제공되는 중요한 개념들이다.
비동기 작업이 끝나는 "약속"을 표현하는 객체이다.
Promise
를 반환한다.async
키워드가 붙은 함수 내부에서는 await
키워드를 사용할 수 있습니다.await
키워드는 async
함수 내에서만 사용할 수 있으며, Promise가 결과가 나올 때까지 함수의 실행을 일시 중지합니다.await
는 Promise
가 resolve
된 값을 반환하며, Promise
가 reject
되면 예외를 발생시켜 try/catch
블록으로 오류를 처리할 수 있습니다.