Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리액트 라우터 돔
- 자바스크립트
- 그리디
- React Query
- styled component
- tailwind
- TypeScript
- 동적계획법
- 리액트
- 스택
- 코어자바스크립트
- Next.js
- 토이 프로젝트
- React
- Form
- 프로그래머스
- JavaScript
- Supabase
- 프론트엔드
- 토이프로젝트
- 타입스크립트
- 코딩테스트
- tanstack query
- reduxtoolkit
- react pattern
- 리액트 패턴
- revalidatepath
- 리덕스
- react router dom
- 코테
Archives
- Today
- Total
느려도 한걸음씩
Next.js - (8) loading 페이지로 로딩 상태 표시하기 본문
2025.05.02 - [FE develop/Next.js] - Next.js - (7) 비동기 작업을 통해 데이터 가져오기
Next.js - (7) 비동기 작업을 통해 데이터 가져오기
이번 포스트에서는 Next.js에서 비동기 작업을 통해 데이터를 가져오는 방법에 대해 알아보겠습니다. ✅ 기본 구조import Link from "next/link";import classes from "./page.module.css";import MealsGrid from "@/components/i
hjh0806.tistory.com
저번 포스트에서는 Next.js에서 서버 컴포넌트 안에서 async/await를 사용해 데이터를 가져오는 방법을 살펴봤습니다.
하지만 이렇게 데이터를 불러오는 동안 사용자는 아무런 피드백 없이 빈 화면을 보게 될 수 있습니다.
이러한 문제를 해결하기 위해 Next.js에서는 loading.js 파일을 통해 로딩 상태를 처리할 수 있습니다.
✅ loading.js로 로딩 상태 구현하기
// app/meals/loading.js
import classes from "./loading.module.css";
export default function MealsLoadingPage() {
return <p className={classes.loading}>Fetching meals...</p>;
}
✅ 반드시 지켜야 할 규칙
- 파일명은 반드시 loading.js여야 합니다.
Next.js가 특별히 인식하는 예약 파일이기 때문입니다. - page.js와 같은 디렉토리 내에 위치해야 합니다.
예를 들어 app/meals/page.js에서 데이터를 패칭하고 있다면,
해당 로딩 상태는 app/meals/loading.js에 정의해주어야 적용됩니다. - 자동으로 레이아웃의 children 자리에 렌더링됩니다.
page.js가 데이터를 가져오는 동안, 설정된 레이아웃 내에서 loading.js가 대신 보여지게 됩니다.
✅ 작동 원리 요약
- page.js에서 비동기 데이터 패칭이 시작되면
- Next.js는 자동으로 같은 폴더 내의 loading.js를 렌더링
- 데이터가 준비되면 page.js로 전환
🔍 마무리
Next.js는 서버 컴포넌트에서 데이터 패칭이 가능하기 때문에, 로딩 중 상태를 보여주는 것은 UI/UX 측면에서 매우 중요합니다.
loading.js 파일을 활용하면 간편하게 이러한 경험을 사용자에게 제공할 수 있습니다.
'FE develop > Next.js' 카테고리의 다른 글
Next.js - (10) error 페이지로 에러 상태 처리하기 (0) | 2025.05.02 |
---|---|
Next.js - (9) Suspense를 이용한 로딩상태 세분화 (0) | 2025.05.02 |
Next.js - (7) 비동기 작업을 통해 데이터 가져오기 (0) | 2025.05.02 |
Next.js - (6) 리액트 서버 컴포넌트 vs 클라이언트 컴포넌트 (0) | 2025.05.01 |
Next.js - (5) 동적 라우팅 (0) | 2025.05.01 |