๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

210212_TIL

by joooing 2021. 2. 13.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


โœ”๏ธ React - Lifecycle ์ดํ•ด
ํŽ˜์ด์ง€๊ฐ€ ๋ Œ๋”๋ง๋˜๊ธฐ ์ „๋ถ€ํ„ฐ ์‚ฌ๋ผ์งˆ ๋•Œ๊นŒ์ง€ ์ปดํฌ๋„ŒํŠธ๋Š” ์ˆ˜๋ช…์ฃผ๊ธฐ๋ผ๋Š” ๊ฒƒ์„ ๊ฐ–๋Š”๋‹ค. ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋Š” ๋งˆ์šดํŠธ, ์—…๋ฐ์ดํŠธ, ์–ธ๋งˆ์šดํŠธ ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋Š”๋ฐ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ๋ช‡๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋“ค์ด ์ •ํ•ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ํ˜ธ์ถœ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ lifecycle ๋ฉ”์„œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ๋งˆ์šดํŠธ ๋‹จ๊ณ„๋Š” DOM ์ƒ์„ฑ ์ดํ›„ ์›น ๋ธŒ๋ผ์šฐ์ €์ƒ์— ๋‚˜ํƒ€๋‚˜๋Š” ๋‹จ๊ณ„์ด๊ณ , ์—…๋ฐ์ดํŠธ๋Š” ๋งˆ์šดํŠธ ์ดํ›„ ์ปดํฌ๋„ŒํŠธ์˜ props, state๋“ฑ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๋•Œ๋ฅผ ๋งํ•œ๋‹ค. ์–ธ๋งˆ์šดํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ DOM์—์„œ ์ œ๊ฑฐ๋˜๋Š” ์‹œ๊ธฐ๋กœ ๋ง ๊ทธ๋Œ€๋กœ ์ปดํฌ๋„ŒํŠธ ์†Œ๋ฉธ์‹œ๊ธฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๊ฐ ๋ฉ”์„œ๋“œ๋“ค์ด ์‹คํ–‰๋˜๋Š” ์‹œ๊ธฐ์™€ ๋‚ด์šฉ์„ ์ฝ˜์†”์ฐฝ์„ ํ†ตํ•ด ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ๊นŒ ์ข€ ๋” ์ดํ•ด๊ฐ€๋๋‹ค. ์ฒซ ๋ Œ๋”๋ง์„ ๋งˆ์นœ ํ›„ ์‹คํ–‰๋˜๋Š” componentDidMount ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ ํ›„ ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋ ์ˆ˜์žˆ๋„๋ก setTimeoutํ•จ์ˆ˜๋ฅผ ์จ์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋ณด๊ธฐ๋„ ํ–ˆ๋‹ค. ์•„์ง ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด๋ณด์ง„ ์•Š์•„์„œ ์ž˜ ์™€๋‹ฟ์ง€ ์•Š๋Š” ๊ฒƒ๋“ค๋„ ์žˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋“ค์€ ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋„ ์ข€๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค.

โœ”๏ธ React - ์˜ํ™” ์ •๋ณด์•ฑ ๋งŒ๋“ค๊ธฐ
๋ฆฌ์•กํŠธ์— ์ต์ˆ™ํ•ด์ง€๊ธฐ ์œ„ํ•ด ์˜ํ™”์•ฑ์„ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. ํ˜„์žฌ ์ƒ์œ„๋žญํ‚น ์˜ํ™” 20๊ฐœ์˜ ์ œ๋ชฉ, ํฌ์Šคํ„ฐ, ์ค„๊ฑฐ๋ฆฌ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์•ฑ์ธ๋ฐ, ์˜ํ™”์— ๋Œ€ํ•œ ์ •๋ณด๋Š” API๋ฅผ ํ†ตํ•ด ๋ฐ›์•„์™”๋‹ค. ์ด๋ฒˆ์—๋Š” fetch ๋Œ€์‹  axios๋ฅผ ํ†ตํ•ด ๋ฐ›์•„์™€๋ดค๋‹ค. ๋ผ์šฐํŒ…์€ react-router-dom ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ–ˆ๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ๋„ HashRouter, Route, Link ์„ธ๊ฐ€์ง€๋ฅผ ์จ๋ดค๋‹ค. Link๋Š” aํƒœ๊ทธ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ์ธ๋ฐ to ์†์„ฑ์— ๋งํฌ๋ฅผ ์„ค์ •ํ•˜๋ฉด ๊ทธ๊ณณ์œผ๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์—ญ์‹œ๋‚˜ ๋ฆฌ์•กํŠธ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ๊ฑด props์™€ state๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š”๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

๐ŸŽ ๊ธฐ์–ตํ•  ๊ฒƒ


โœ”๏ธaxios vs fetch
1. axios
- ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ € ์ง€์›
- ์‘๋‹ต์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์„ค์ • ๊ฐ€๋Šฅ
- JSON ์ž๋™๋ณ€ํ™˜ ๊ฐ€๋Šฅ
- node.js์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
- request aborting (์š”์ฒญ์ทจ์†Œ)๊ฐ€ ๊ฐ€๋Šฅ
- ์—๋Ÿฌ๊ฐ€ catch๋˜์—ˆ์„ ๋•Œ, .then ๋Œ€์‹  console์ฐฝ์— ์—๋Ÿฌ ๋กœ๊ทธ ๋ณด์—ฌ์คŒ

2. fetch
- Javscript ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (import ํ•„์š”X)
- ์—…๋ฐ์ดํŠธ์— ๋”ฐ๋ฅธ ์—๋Ÿฌ ๋ฐฉ์ง€๊ฐ€ ๊ฐ€๋Šฅ
- ๋„คํŠธ์›Œํฌ ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ๊ธฐ๋‹ค๋ ค์•ผํ•จ (reponse timeout API ์ œ๊ณตX)
- ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ € ์กด์žฌ

โœ”๏ธ React Lifecycle method
1. ๋งˆ์šดํŠธ (mount)
- constructor()
- getDerivedStateFromProps()
- render()
- componentDidMount()

2. ์—…๋ฐ์ดํŠธ (update)
- getDerivedStateFromProps()
- shouldComponentUpdate render()
- getSnapshotBeforeUpdate componentDidUpdate()

3. ์–ธ๋งˆ์šดํŠธ (unmount)
- componentWillUnmount()

โœ”๏ธ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น ์‘์šฉ
const {
  prop: {
    data: { items }
  }
} = fulldata

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ lifecycle method ํ™œ์šฉ
โœ”๏ธ react-router-dom
โœ”๏ธ Hooks
๋ฐ˜์‘ํ˜•

'Daily > Today I Learned' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

210216_TIL  (0) 2021.02.17
210215_TIL  (0) 2021.02.16
210210_TIL  (0) 2021.02.11
210209_TIL  (0) 2021.02.10
210208_TIL  (0) 2021.02.09

๋Œ“๊ธ€