React์ fetch๋ฅผ ์ด์ฉํด Api๋ฅผ ์ฐ๊ฒฐํ๊ณ
ํ๋ฉด์ ๋ ๋๋ง ์๋๊ฐ ๋๋ฆด ๊ฒฝ์ฐ ๋ก๋ฉ ํ๋ฉด์ด ๋ณด์ด๋๋ก ์์
ํ๋ ๊ณผ์ ๋ฅผ ์งํํ๋ค.
importํ ๋ถ๋ถ์ ์ฃผ์ ์ฒ๋ฆฌํ์ง ์๊ณ ์์ ์ญ์ ํด์ผ ๋ฌธ์ ๋์ง ์๋๋ค.
useEffect Hook์ ์ด์ฉํด AJAX ์์ฒญ๊ณผ, ๋ก๋ฉ ํ๋ฉด์ ๊ฐ์ด ์งํํ ์ ์๋ค.
import { getFlight } from '../api/FlightDataApi'; //๋ก์ปฌ์ ์ ์ฅ๋API ๋ถ๋ฌ์ค๊ธฐ
import { useEffect, useState } from 'react';
const [Loading, setLoading] = useState(false); //๋ก๋ฉํ๋ฉด state๋ก ์ ์ธ
useEffect(() => {
Loading(true);
getFlight(๊ฐ);// ๋ก์ปฌ์ ์ ์ฅ๋ API ๋ถ๋ฌ์ค๊ธฐ
//.then(res => res.json()) // jon()์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ธฐ(getFlight๋ ์ด๋ฏธ json()๋์ด ์์ด ์๋ต๋จ)
.then(result => {
setFlightList(result)
setIsLoading(false);
})
}, [์ข
์ก์ ๋ฐฐ์ด])
return(
//์ผํญ ์ฐ์ฐ์ ์ฌ์ฉํด Loading์ด true, false์ผ ๋ ๋ค๋ฅด๊ฒ ์ ์ฉํด ์ฃผ๊ธฐ
{Loading
? <LoadingIndicator />
: <FlightList list={flightList} />
}
)
${๋ณ์}๋ก ์์ฑํด ์ค๋ค.
let url = `http://์ฃผ์/data?${result}`
fetch(url)
.then(res => res.json())
fetch๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์์์ง๋ง REST API ํธ์ถ๊ณผ ๊ฐ์ด ์ฐ๊ด ์ง์ด์ ์งํํ๋ ค๊ณ ํ๋
์๊ฐ ๋ณด๋ค ์ด๋ ค์ ๊ณ ๋ฌธ์ ๋ฅผ ํ์ด๋ ์ดํดํ๋๋ฐ ์ค๋ ๊ฑธ๋ ธ๋ค.
์ด๋ฒ ๊ณผ์ ์์ญ์ ๋ค์ ๋ณต์ตํ๋ ์๊ฐ์ ๊ฐ์ ธ์ผ ํ ๊ฒ ๊ฐ๋ค.