[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ] StatesAirline Client - Part 2 ๊ณผ์ œ ์ง„ํ–‰

JiEunยท2023๋…„ 4์›” 3์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

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} />
	}
)
  • API ๋งํฌ ์ž‘์„ฑํ•  ๋•Œ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ ${๋ณ€์ˆ˜}๋กœ ์ž‘์„ฑํ•ด ์ค€๋‹ค.
let url = `http://์ฃผ์†Œ/data?${result}`
fetch(url)
.then(res => res.json())

โœ๏ธ ๋งˆ์น˜๋ฉฐ

fetch๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ์•˜์ง€๋งŒ REST API ํ˜ธ์ถœ๊ณผ ๊ฐ™์ด ์—ฐ๊ด€ ์ง€์–ด์„œ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ
์ƒ๊ฐ ๋ณด๋‹ค ์–ด๋ ค์› ๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋„ ์ดํ•ดํ•˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค.

์ด๋ฒˆ ๊ณผ์ œ ์˜์—ญ์€ ๋‹ค์‹œ ๋ณต์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€