React에서 API 데이터 불러오기: 실전 가이드
React 애플리케이션에서 데이터를 불러와서 화면에 표시하는 것은 매우 중요한 작업 중 하나입니다.
여기서는 fetch API를 사용하여 데이터를 불러오고, 이를 상태로 관리하는 방법을 설명합니다.
예제로 사용할 코드는 jsonplaceholder.typicode.com에서 댓글 데이터를 불러오는 것입니다.
import React, { useEffect, useState, useRef } from 'react';
const App = () => {
const [data, setData] = useState([]);
const dataId = useRef(1);
const getData = async () => {
const res = await fetch("https://jsonplaceholder.typicode.com/comments")
.then((res) => res.json());
const initData = res.slice(0, 20).map((it) => {
return {
author: it.email,
content: it.body,
emotion: Math.floor(Math.random() * 5) + 1,
created_date: new Date().getTime(),
id: dataId.current++,
};
});
setData(initData);
};
useEffect(() => {
getData(); // API를 호출하여 데이터를 가져옵니다.
}, []);
return (
<div>
{data.map((item) => (
<div key={item.id}>
<h3>{item.author}</h3>
<p>{item.content}</p>
<p>Emotion: {item.emotion}</p>
<p>Date: {new Date(item.created_date).toLocaleString()}</p>
</div>
))}
</div>
);
};
export default App;
코드 설명
- 상태 관리: useState를 사용하여 데이터를 상태로 관리합니다. 초기 상태는 빈 배열입니다.
- 참조 관리: useRef를 사용하여 각 데이터 항목에 고유 ID를 부여합니다.
- 데이터 불러오기 함수: getData 함수는 async/await를 사용하여 API로부터 데이터를 비동기적으로 불러옵니다.
- fetch API를 사용하여 데이터를 가져오고, JSON 형식으로 변환합니다.
- 가져온 데이터를 slice 메서드로 처음 20개 항목만 사용하고, 각 항목을 새로운 객체로 변환합니다.
- 변환된 객체에는 작성자 이메일, 내용, 감정 점수(1~5), 생성 날짜, 고유 ID가 포함됩니다.
- 데이터 설정: setData를 사용하여 변환된 데이터를 상태로 설정합니다.
- 컴포넌트가 마운트될 때 데이터 불러오기: useEffect를 사용하여 컴포넌트가 처음 마운트될 때 getData 함수를 호출합니다.
- UI 렌더링: 상태로 관리되는 데이터를 맵핑하여 화면에 표시합니다. 각 항목은 작성자, 내용, 감정 점수, 생성 날짜로 구성됩니다.
npx create-expo-app@latest 프로젝트 이름 --template blank
npx create-expo-app@latest 프로젝트 이름 --template blank
반응형
'React' 카테고리의 다른 글
[REACT] 리액트 프로젝트 초기 설정 가이드 (0) | 2024.07.03 |
---|