티스토리 뷰

React

[React] 실습 / API 호출 / useEffect / Mount

에스파니아 2022. 5. 2. 14:59
728x90
반응형

개요



React 에서 API 를 호출 해보자 !! 

useEffect 를 이용하여 컴포넌트 Mount 시점에 API의 결과값을 초기값으로 활용해보자 !!



App.js



import { useEffect, useRef, useState } from "react";
import "./styles.css";

export default function App() {
  const [data, setData] = useState([]);
  const dataId = useRef(0);

  const getData = async () => {
    const res = await fetch(
      "https://jsonplaceholder.typicode.com/comments"
    ).then((res) => {
      return 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();
    console.log(data);
  }, []);
  //
  return (
    <div className="App">
      <div>
        {data.map((it) => {
          return (
            <div
              style={{
                border: "solid black 1px",
                marginBottom: "10px"
              }}
            >
              <span>작성자: {it.author}</span>
              <span>내용: {it.content}</span>
              <span>감정: {it.emotion}</span>
              <span>작성일: {it.created_date}</span>
              <span>id: {it.id}</span>
            </div>
          );
        })}
      </div>
    </div>
  );
}


1. State 초기화 (data, dataId)
  -> data 는 api 호출을 통한 데이터들 초기화 해줄 state, dataId는 data Id값 초기화 해줄 state

2. getData 함수 초기화
  -> fetch 메소드를 통해 jsonplaceholder 에서 무료로 제공하는 API 데이터를 initData 함수를 통해 가공 하여 setData 함수를 통해 data(state) 값을 초기화 해준다.

3. getData 호출
  -> useEffect 를 사용하여 컴포넌트가 Mount 되는 시점에 getData를 호출하여 data State 값을 초기화 해준다.



 

참고



https://espania.tistory.com/353

 

[React] 기본 / Life Cycle / Hooks

Life Cycle (생애주기) 인간 세계에서의 생애 주기란 시간의 흐름에 따라 변화해가는 개인 생애의 일정한 단계별 과정을 말한다. 기본적으로 역량의 변화 발전에 따라 영유아기, 아동기, 청소년기,

espania.tistory.com

https://espania.tistory.com/364
 

[javascript] API 호출/ fetch

API 웹상 에서 데이터의 흐름은 레스토랑에서 손님 - 웨이터 - 냉장고 의 상호작용 관계를 통해 이해 할 수 있다.  1. 손님이 웨이터에게 주문을 한다. -> Browser(브라우저)가 Server(서버) 에게 Request(

espania.tistory.com

https://jsonplaceholder.typicode.com/

 

JSONPlaceholder - Free Fake REST API

{JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + LowDB. Tested with XV. As of Oct 2021, serving ~1.7 billion requests each month.

jsonplaceholder.typicode.com

https://codesandbox.io/s/agitated-heyrovsky-indth1?file=/src/App.js%E2%80%8 

 



728x90
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
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
글 보관함