๐Ÿ“– TIL - React Hooks ํŒŒํ—ค์น˜๊ธฐ: "์•„ํ•˜, ์ด๋ž˜์„œ ํ›…์„ ์“ฐ๋Š”๊ตฌ๋‚˜! ๐ŸŽฃ

์Š˜ยท2025๋…„ 1์›” 24์ผ

๐Ÿ“– TIL

๋ชฉ๋ก ๋ณด๊ธฐ
35/90

๐Ÿ“Œ ์˜ค๋Š˜์˜ ํ•™์Šต

  • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ง•๊ณผ ์žฅ์ 
  • React Hooks์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• (useState, useEffect)
  • ์ปค์Šคํ…€ ํ›… ๋งŒ๋“ค๊ธฐ

๐Ÿ’ก ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ

ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ง•

function Component() {
  // ์ปดํฌ๋„ŒํŠธ ๋กœ์ง
  return (/* JSX */);
}
  • ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ๋ฌธ๋ฒ•์ด ๊ฐ„๊ฒฐํ•จ
  • Hook ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ํด๋ž˜์Šคํ˜•๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ ์Œ

useEffect ๊นŠ์ด ์ดํ•ดํ•˜๊ธฐ

useEffect(() => {
  // ์‹คํ–‰ํ•  ์ฝ”๋“œ
  return () => {
    // ํด๋ฆฐ์—… ํ•จ์ˆ˜
  }
}, [์˜์กด์„ฑ๋ฐฐ์—ด]);

ํ•ต์‹ฌ ํฌ์ธํŠธ:

  • ์ฒซ ๋ฒˆ์งธ ์ธ์ž: ์ฝœ๋ฐฑ ํ•จ์ˆ˜
  • ๋‘ ๋ฒˆ์งธ ์ธ์ž: ์˜์กด์„ฑ ๋ฐฐ์—ด
  • ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜(void)
  • ์˜์กด์„ฑ ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ์œผ๋ฉด ๋งˆ์šดํŠธ ์‹œ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰

useState ์‹คํ–‰ ํ๋ฆ„

const [count, setCount] = useState(0);
  • ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ ์ƒํƒœ ์ดˆ๊ธฐํ™”
  • setCount๋กœ ์ƒํƒœ ๋ณ€๊ฒฝ ์‹œ ๋ฆฌ๋ Œ๋”๋ง ๋ฐœ์ƒ
  • App ํ•จ์ˆ˜ ๋‹ค์‹œ ํ˜ธ์ถœ

์ปค์Šคํ…€ ํ›…

function useCounter(initialValue = 0) {
  const [count, setCount] = useState(initialValue);
  // ... ๋กœ์ง
  return [count, setCount];
}

// Counter.jsx
function Counter() {
  const [count, setCount] = useCounter(0);
 ...

ํŠน์ง•:

  • ๊ฐ ํ˜ธ์ถœ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ
  • 'use' ์ ‘๋‘์–ด๋กœ ํ›…์ž„์„ ๋ช…์‹œ
  • ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ

โœจ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ์ 

  1. useEffect์˜ ์‹คํ–‰ ์‹œ์ 

    • ์™ธ๋ถ€ ์‹œ์Šคํ…œ ์—ฐ๋™ ์‹œ ์‚ฌ์šฉ
    • ์˜์กด์„ฑ ๋ฐฐ์—ด ๋ณ€๊ฒฝ ์‹œ ์ฝœ๋ฐฑ ์‹คํ–‰
  2. ๋ Œ๋”๋ง ๊ณผ์ •

    • document.getElementById('root')๋กœ DOM ์ ‘๊ทผ
    • JSX๊ฐ€ ์‹ค์ œ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜
  3. Hook vs Util ํ•จ์ˆ˜

    • Hook์€ 'use' ์ ‘๋‘์–ด ํ•„์ˆ˜
    • ์ƒํƒœ ๊ด€๋ฆฌ ์—ฌ๋ถ€๋กœ ๊ตฌ๋ถ„

๐Ÿš€ ์‹ค๋ฌด ์ ์šฉ ํฌ์ธํŠธ

  • ์ปค์Šคํ…€ ํ›…์œผ๋กœ ์ค‘๋ณต ๋กœ์ง ์ œ๊ฑฐ
  • useEffect ์˜์กด์„ฑ ๋ฐฐ์—ด ์‹ ์ค‘ํ•˜๊ฒŒ ๊ด€๋ฆฌ
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆœ์ˆ˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์„ค๊ณ„

โญ๏ธ ์ค‘์š” ์šฉ์–ด

  • Mount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์— ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” ์‹œ์ 
  • Unmount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง€๋Š” ์‹œ์ 
  • Side Effect: ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ๋™๊ธฐํ™” ์ž‘์—…
profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

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