# React Hook

useState(), useEffect() μ •μ˜


λ¦¬μ•‘νŠΈμ˜ ComponentλŠ” 'ν΄λž˜μŠ€ν˜•'κ³Ό 'ν•¨μˆ˜ν˜•'으둜 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.

기쑴의 ν΄λž˜μŠ€ν˜• μ»΄ν¬λ„ŒνŠΈμ—μ„œλŠ” λͺ‡ 가지 어렀움이 μ‘΄μž¬ν•œλ‹€.

  1. μƒνƒœ(State) 둜직 μž¬μ‚¬μš© 어렀움
  2. μ½”λ“œκ°€ λ³΅μž‘ν•΄μ§
  3. κ΄€λ ¨ μ—†λŠ” λ‘œμ§λ“€μ΄ ν•¨κ»˜ μ„žμ—¬ μžˆμ–΄ 이해가 νž˜λ“¬

이와 같은 어렀움을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄, 'Hook'이 λ„μž…λ˜μ—ˆλ‹€. (16.8 버전뢀터)


# Hook

  • ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈμ—μ„œ State와 Lifecycle κΈ°λŠ₯을 μ—°λ™ν•΄μ£ΌλŠ” ν•¨μˆ˜
  • 'ν΄λž˜μŠ€ν˜•'μ—μ„œλŠ” λ™μž‘ν•˜μ§€ μ•ŠμœΌλ©°, 'ν•¨μˆ˜ν˜•'μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

# useState

기본적인 Hook으둜 μƒνƒœκ΄€λ¦¬λ₯Ό ν•΄μ•Όν•  λ•Œ μ‚¬μš©ν•˜λ©΄ λœλ‹€.

μƒνƒœλ₯Ό λ³€κ²½ν•  λ•ŒλŠ”, set으둜 μ€€ μ΄λ¦„μ˜ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œλ‹€.

const [posts, setPosts] = useState([]); // 비ꡬ쑰화 ν• λ‹Ή 문법

useState([]);와 같이 ( ) μ•ˆμ— μ΄ˆκΈ°ν™”λ₯Ό 섀정해쀄 수 μžˆλ‹€. ν˜„μž¬ μ˜ˆμ œλŠ” 빈 배열을 λ§Œλ“€μ–΄ λ‘” 상황인 것이닀.


# useEffect

μ»΄ν¬λ„ŒνŠΈκ°€ λ Œλ”λ§ 될 λ•Œλ§ˆλ‹€ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ μ„€μ •ν•  수 μžˆλŠ” Hook

'클래슀' μ»΄ν¬λ„ŒνŠΈμ˜ componentDidMount()와 componentDidUpdate()의 역할을 λ™μ‹œμ— ν•œλ‹€κ³  봐도 λœλ‹€.

useEffect(() => {
    console.log("λ Œλ”λ§ μ™„λ£Œ");
    console.log(posts);
});

postsκ°€ 변경돼 λ¦¬λ Œλ”λ§μ΄ 되면, useEffectκ°€ μ‹€ν–‰λœλ‹€.



# [참고자료]

μ΅œμ’… μˆ˜μ • : 12/17/2022, 7:23:59 AM