fe-sprint-statesairline-client์ ๋ชฉํ
๐ก Part 1: ํญ๊ณต๊ถ ๋ชฉ๋ก ํํฐ๋ง
๐งฉ Main ์ปดํฌ๋ํธ์์ ํญ๊ณตํธ์ ์กฐํํฉ๋๋ค
โ Main ์ปดํฌ๋ํธ ๋ด `search` ํจ์๋ ๊ฒ์ ์กฐ๊ฑด์ ๋ด๊ณ ์๋ ์ํ ๊ฐ์ฒด `condition`์ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค (24 ms)
๐งฉ Search ์ปดํฌ๋ํธ๋ฅผ ํตํด ์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ๋ฅผ ํ์ตํฉ๋๋ค
โ ๊ฒ์ ํ๋ฉด์ด Search ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌ๋์ด์ผ ํฉ๋๋ค (3 ms)
โ Search ์ปดํฌ๋ํธ์๋ ์ํ ๋ณ๊ฒฝ ํจ์ `search`๊ฐ `onSearch` props๋ก ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค (5 ms)
โ ์ํ ๋ณ๊ฒฝ ํจ์ `search`๋ Search ์ปดํฌ๋ํธ์ `๊ฒ์` ๋ฒํผ ํด๋ฆญ ์ ์คํ๋์ด์ผ ํฉ๋๋ค (25 ms)
๐ก Part 2: AJAX ์์ฒญ
๐งฉ Side Effect๋ useEffect์์ ๋ค๋ค์ผ ํฉ๋๋ค
โ ๊ฒ์ ์กฐ๊ฑด์ด ๋ฐ๋ ๋๋ง๋ค, FlightDataApi์ getFlight๋ฅผ ๊ฒ์ ์กฐ๊ฑด๊ณผ ํจ๊ป ์์ฒญํด์ผ ํฉ๋๋ค (16 ms)
โ getFlight์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์, flightList ์ํ๋ฅผ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค (55 ms)
โ ๋์ด์, ์ปดํฌ๋ํธ ๋ด ํํฐ ํจ์ `filterByCondition`๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค
โ ๋์ด์, ํ๋์ฝ๋ฉ๋ flightList JSON์ ์ฌ์ฉํ์ง ์์ต๋๋ค (์ด๊ธฐ๊ฐ์ ๋น ๋ฐฐ์ด๋ก ๋ก๋๋ค)
โ getFlight ์์ฒญ์ด ๋ค์ ๋๋ฆฌ๋ฏ๋ก, ๋ก๋ฉ ์ํ์ ๋ฐ๋ผ LoadingIndicator ์ปดํฌ๋ํธ๋ฅผ ํ์ํด์ผ ํฉ๋๋ค (38 ms)
๐งฉ FlightDataApi์์ ๊ธฐ์กด ๊ตฌํ ๋์ , REST API๋ฅผ ํธ์ถํ๋๋ก ๋ฐ๊ฟ๋๋ค
โ ๊ฒ์ ์กฐ๊ฑด๊ณผ ํจ๊ป StatesAirline ์๋ฒ์์ ํญ๊ณตํธ ์ ๋ณด๋ฅผ ์์ฒญ(fetch)ํฉ๋๋ค (6 ms)
Main.js
Search.js
FlightDataApi.js
์๊ฐ
์ด์ฐ์ ์ฐ ํ ์คํธ๋ ํต๊ณผํ์์ง๋ง, ๋ ผ๋ฆฌ๊ฐ ์๋ฒฝํ๊ฒ ์ดํด ๋์ง๋ ์์๋ค.
์กฐ๊ธ ๋ ์ดํดํด๋ณด๊ณ ์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผ ์ ์ด๋ณด์์ผ๋ ์๋ฒฝํ๊ฒ ์ดํด๋์ง๋ ์์๋ค.
์ฝ๋๋ฅผ ์ฝ์ผ๋ฉด ์ดํด๊ฐ ๋๊ณ , ์ด ๋ถ๋ถ์ ์ด๋ ๊ฒ ํด์ผ์ง ์์~ ์ด๋ฐ ์๊ฐ์ด ๋ค์ง๋ง ๋ฐฑ์ง์ํ์์ ์ ์ด๋ด๋ ค๊ฐ ๋ฅ๋ ฅ์ ์์ง ์๋๋ค.
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋คํธ์ํฌ ๊ธฐ์ด ๋ณต์ต (0) | 2023.05.03 |
---|---|
fe-sprint-mini-node-server (0) | 2023.04.04 |
fe-sprint-react-twittler-state-props-refernce ์๋์ฝ๋ ์์ฑํด๋ณด๊ธฐ (0) | 2023.03.28 |
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object-Oriented Programming) (0) | 2023.03.15 |
local Git repository (0) | 2023.03.10 |
๋๊ธ