● 오늘 공부한 것
비동기 함수로 데이터 받아오기
FlightDataApi.js
export async function getFlight(filterBy = {}) {
// HINT: 가장 마지막 테스트를 통과하기 위해, fetch를 이용합니다. 아래 구현은 완전히 삭제되어도 상관없습니다.
// TODO: 아래 구현을 REST API 호출로 대체하세요.
const url = 'http://ec2-13-124-90-231.ap-northeast-2.compute.amazonaws.com:81/flight'
let param = filterBy.destination ? `${url}?departure=${filterBy.departure}&destination=${filterBy.destination}` :
`${url}?departure=${filterBy.departure}`
const res = await fetch(param).then(res => res.json());
return res;
}
Main.js
useEffect(() => {
setisLoading(true);
getFlight(condition)
.then(res =>{
setFlightList(res);
setisLoading(false);
})
}, [condition])
{isLoading ? <LoadingIndicator></LoadingIndicator> : <FlightList list={flightList}></FlightList>}
● 내가 놓치고 있던 것
- React 17버전이전에는 setTimeout, fetch 같은 비동기 함수를 사용할 때는 batching 이 되지 않는다.
- 18버전부터는 —> auto batching이 된다.
- 이전에 정리 해두었던, fetch와 axios는 프로미스를 반환하고, resolve되면 response 객체를 반환한다.
- 그리고나서 후속메서드가 쓰이면 또 프로미스를 반환하고, resolve 된 값을 사용할 수 있다.
fetch와 axios는 response 객체를 반환?
fetch와 axios로 Http 요청을 보낼때에는 늘 promise를 반환하는데, response 객체를 promise로 감싸서 반환한다. 이후 후속 메서드를 활용하면 resolve된 값으로 사용할 수 있는 것.. 즉 후속메서드는 늘 resolv
ddaeunbb.tistory.com
● 수업 이외의 공부
- 할일 메모장 만들기
- useState, useRef 공부
- 모던자바스크립트 복습
- 코테 문제 풀기 (5개정도푼거같다)
- 네트워크 책읽기
●useState 사용법
자바스크립트였다면 const, let, var을 사용해서 변수를 선언했을텐데 React에서는 state라는 훅을 사용해 변수를 선언하고 저장한다. useState는 배열로 리턴되고, 배열의 첫 번째는 설정값, 그리고 두
ddaeunbb.tistory.com
● useRef 사용법
useRef는 렌더링에 필요하지 않는 값을 참조할 수 있는 React Hook입니다. 렌더링이 잦게 되면 리액트의 성능에 문제가 생길 수 있기 때문에, 렌더링이 될 props, state와 렌더링이 되지 않을 값을 구분
ddaeunbb.tistory.com