React
React 13-1 React-qurery (없이 api 호출)
와라리요
2023. 3. 23. 13:10
- api는 간다 하게 생각하면 프론트와 백 서버의 소통 방식이라고 생각하면 된다. 그렇다면 React에서는 어떻게 api로 소통할까? 우선 React-qurery라는 좋은 라이브러리가 있지만 없다는 전제로 구성을 해보자!!
React-qurery 없이 api 호출하기
1. 우선 호출 시 date를 받을 변수를 선언해야 한다. (우선 TS가 없다는 전제로 해보자!!) (공부한 곳에서 코인 정보가 있는 open api를 사용해서 그것을 예로 들었다!!)
const [coins, setCoins] = useState([]);
2. 그 다음은 api 호출하고 json형태로 바꿔준다. (useEffect, fetch() 사용!!)
useEffect(() => {
(async () => {
const response = await (await fetch('api url')).json();
// 위와 동일
// const response = await fetch('api url');
// const json = await response.json();
})();
setCoins(response);
}, []);
date를 json형태로 잘 받아 와지는 것을 확인할 수 있다.
동적 api 호출 방법
- 그렇다면 api가 유동적으로 바뀌는 값이 있다면 어떻게 해야 할까?
사실 별거 없다!!!! 동적인 부분에 ${} 사용해 변수명을 넣고 useEffect에 변수명이 변경될 때마다 호출할 수 있게 하면 된다.
예)
// React-router-dom에 있는 useParams hook으로 변경되는 url 가져오기
const { coinId } = useParams([]);
// api 호출 data 담을 변수
const [info, setInfo] = useState([]);
// 동적 api 호출
useEffect(() => {
(async () => {
const infoData = await
(await fetch(`api url/${coinId}`))
.json();
})();
setInfo(infoData);
}, [coinId]);