컴포넌트가 Mount하는 시점(등장)에 API를 호출
fetch
를 사용하여 API 호출API URL 복사
[ {
"postId": 1,
"id": 1,
"name": "id labore ex et quam laborum",
"email": "Eliseo@gardner.biz",
"body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium"
},
...
]
async/await
활용해 getData 함수가 promise를 반환하는 비동기 함수로 만들기getData 함수 호출하기
: 언제 호출하느냐? 이 App 컴포넌트가 Mount되지마자 호출이전 복습 : Mount됐을 때 코드 수행하기
useEffect의 dependency에 빈 배열을 전달하면 콜백 함수는 App 컴포넌트가 Mount되는 시점에 바로 실행되게 된다
src/App.js
function App() {
const getData = async() => {
const res = await fetch("https://jsonplaceholder.typicode.com/comments")
.then((res)=>res.json()); // json 메서드를 통해 우리가 원하는 데이터 값 뽑기
console.log(res); // 500개의 데이터 확인
};
useEffect(()=>{ getData(); },[]);
}
작성자 - email, 내용 - body 활용
Map
: 배열 각각의 모든 요소를 순회해서 콜백 함수 안에서 리턴하는 값들을 모아서 배열을 만들어서 initData 값에다가 집어넣는다고 생각하면 됨src/App.js
function App() {
const getData = async() => {
const res = await fetch("https://jsonplaceholder.typicode.com/comments")
.then((res)=>res.json());
console.log(res); // 500개의 데이터
const initData = res.slice(0, 20).map((it)=>{
return {
author : it.email, // 작성자
content : it.body, // 내용
emotion : Math.floor(Math.random() * 5) + 1,
// Math 객체
// 0부터 4까지의 랜덤 난수 생성 (호출하는 순간 0~4 중 1개가 될 수 있음)
// 정수가 반환되지 않고 소수점이 나올 수 있음
// 소수점자리를 버리고 정수로 바꾸고 + 1을 더하면 1~5 까지가 나온다. (감정점수는 1~5점이니까)
// 어렵다 생각하면 그냥 emotion : 5로 해도 됨
created_date : new Date().getTime(), // 현재 시간
id : dataId.current++ // 현재 id 값에 1 증가
}
});
setData(initData); // setData 함수에 initData 전달
};
useEffect(()=>{ getData(); },[]);
💬 유데미가 또 공부 열심히 하라고 자동 메일
보내줬다 😄
나란 사람 마케팅에 잘 낚이니까 괜찮은 강의있나 보니까 웹 부트캠프 강의도 있었다(흠..)
샘플 강좌 들어보니 뭔가 영어 리스닝 강의같다. 기본적인 거 외에도 SQL, 보안, Restful API, Express, MongoDB, Auth 등 다양하게 알려주는데 99천원..... (문득 드는 생각은 수많은 강의들이 있는데 과연 정보의 가치와 지불해야 하는 가격은 비례하는가도 의문. 싸다고 다 나쁜 거도 비싸다고 꼭 좋은 건 아니라고 생각하는데..)