TIL - 21.08.02 ๐Ÿ‘จโ€๐Ÿ’ป - React

4079 ๋‹จ์–ด ReactTILReact

TIL - 21.08.02 ๐Ÿ‘จโ€๐Ÿ’ป

React

React๋Š” top-down ํ˜•์‹์˜ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‚˜ state ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ (Lifting State Up)์œผ๋กœ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ state๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ๋Œ์–ด ์˜ฌ๋ฆฌ๊ธฐ์˜ ์š”์ ์€ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ state๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํ•จ์ˆ˜๋ฅผ props๋กœ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


State ํŒ๋ณ„

  • ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ props๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ ๋˜๋Š”๊ฐ€?
  • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๊ฐ€?
  • ์ปดํฌ๋„ŒํŠธ ์•ˆ ๋‹ค๋ฅธ state๋‚˜ props๋กœ ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€ ?

-> ํ•˜๋‚˜๋ผ๋„ Yes๋ผ๋ฉด state๋กœ๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค.


Side Effect ( ๋ถ€์ˆ˜ํšจ๊ณผ )

  • useEffect Hook -> ๋‘๋ฒˆ์งธ ์ธ์ž ์ž๋ฆฌ์— ์–ด๋–ค state๊ฐ€ ๋ณ€ํ• ๋•Œ Effect Hook์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ์ง€์ •๊ฐ€๋Šฅ ๊ฐ€๋Šฅํ•˜๋‹ค.
    ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ณ€์ˆ˜๋ฅผ ์š”์†Œ๋ฅผ ๋„ฃ์œผ๋ฉฐ, ์ด ๋‘๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ข…์†์„ฑ ๋ฐฐ์—ด์ด๋ผ ํ•œ๋‹ค.

  • ํ•จ์ˆ˜ ๋‚ด ์–ด๋–ค ๊ตฌํ˜„์ด '์™ธ๋ถ€์—' ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉด Side Effect๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

  • Pure Function
    ์ˆœ์ˆ˜ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๋งŒ์ด ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.
    ์–ด๋–ค ์ „๋‹ฌ์ธ์ž๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ์— ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜์ด๋‹ค.

  • fetch API
    fetch๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ฉ”์†Œ๋“œ๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด GET ๋ฉ”์†Œ๋“œ๋กœ API๋ฅผ ์ฝ์–ด์˜จ๋‹ค.


isLoading

const func1 = ()=>{
  const [isLoading, setIsLoading] = useState(true);
  useEffect(()=>{
  setTimeout(5000, setIsLoading(false))
  },[])
  return <>
    {isLoading ? <div>Loading..</div> : <div> done! </div>}
    </>
}

์ด๋Ÿฐ์‹์œผ๋กœ ์Šคํ…Œ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋กœ๋”ฉ์ค‘์— ๋กœ๋”ฉ์ค‘์ด๋ผ๋Š” ๊ฒƒ์„ ๊ฐ€์‹œ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์„ ๋ Œ๋”ํ•  ์ˆ˜ ์žˆ๋‹ค.


TO DO ๐Ÿ”ฅ

  • ๋ฆฌ์•กํŠธ ๋ณต์Šต

Retrospect ๐Ÿง

์˜ค๋Š˜ ์˜ค๋žœ๋งŒ์— ๋ฆฌ์•กํŠธ๋ฅผ ๋งŒ๋‚ฌ๋‹ค.
๋‹คํ–‰ํžˆ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์˜ ํž˜์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ๊ธฐ์–ต์ด ๋‚˜์„œ ์˜ค๋Š˜ ์Šคํ”Œ๋ฆฐํŠธ์—์„œ ํฐ ์–ด๋ ค์›€์€ ์—†์—ˆ๋‹ค.
๋‚ด์ผ ํŽ˜์–ด์‹œ๊ฐ„์— ํ•  ์Šคํ”Œ๋ฆฐํŠธ๊นŒ์ง€ ๋๋‚ด๋†จ๋Š”๋ฐ, ๋‚ด์ผ์€ ๋ฐ€๋ฆฐ ๋ฆฌ์•กํŠธ ๋ณต์Šต์„ ๋‹ฌ๋ ค๋ณผ๊นŒ ๊ณ ๋ฏผ์ค‘์ด๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ