티스토리 뷰
1. params
Next.js의 동적 라우팅은 동적으로 생성된 URL 경로에서 매개변수를 받아와 사용하게 해준다. params는 동적 라우팅 페이지 컴포넌트로 전달되는 객체로, URL에서 가져온 동적 테이터를 담고 있다. params의 역할은 다음과 같다.
- URL의 경로 매개변수를 나타냄
- 동적 경로에 있는 값들을 params로 받게 됨
- 동적 세그먼트로부터 추출된 값이 key-value 쌍으로 저장되어 있음
예를 들어, app/test/[testId]/testtest/[privateId]/hahaha/page.tsx의 코드가 있다고 하자.
export default function Test({ params }: { params: any }) {
console.log("params", params);
return <div>Test!</div>;
}
console.log(params)의 출력 결과는 다음과 같다.
params에는 동적 경로에 있는 testId와 privateId가 string으로 저장되어 있다.
2. 로딩 UI
Next.js에서 page.tsx와 같은 위치에 loading.tsx 파일을 생성하면 비동기 로딩 상태를 별도의 설정 없이 자동으로 처리할 수 있게 해준다. 예를 들어, 아래와 같은 page.tsx, loading.tsx 코드가 있다고 하자.
// page.tsx
async function getProduct() {
await new Promise((resolve) => setTimeout(resolve, 10000));
}
export default async function ProductDetail({
params: { id },
}: {
params: { id: string };
}) {
const product = await getProduct();
return <span>Product detail of the product {id}</span>;
}
// loading.tsx
export default function Loading() {
return <div>Loading...</div>;
}
page.tsx에서는 10초동안 로딩 상태를 가지며, 이 때 page.tsx 파일의 컴포넌트 대신 loading.tsx 파일의 컴포넌트가 보이게 된다.
'기록' 카테고리의 다른 글
Next.js의 Soft/Hard Refresh, Intercepting Routes, Parallel Routes 간단하게 기록 (0) | 2024.10.27 |
---|---|
Next.js next/image 컴포넌트의 'Invalid src prop' 에러 (1) | 2024.10.26 |
Prisma에서 발생하는 에러 중 하나인 PrismaClientKnownRequestError 처리하기 (0) | 2024.10.19 |
zod의 refine과 superRefine (0) | 2024.10.06 |
Next.js에서의 useFormStatus, useFormState (0) | 2024.09.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- aws
- 다이나믹프로그래밍
- 자바스크립트
- 타입스크립트
- Next.js
- SQL
- 완전탐색
- 코드스테이츠
- 비트마스킹
- async
- 구현
- 프로그래머스
- themoviedb
- BFS
- CSS
- 동적계획법
- C++
- 순열
- NextJS
- 카카오맵
- 알고리즘
- 브루트포스
- typescript
- 햄버거버튼
- 스택
- react
- Redux
- 넥스트js
- 백준
- 리액트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함