React Hooks
Last updated
Last updated
리μ‘νΈλ₯Ό μ¬μ©νλ©° κ°μ₯ λ§μ΄ μ¬μ©νλ κ² μ€ νλκ° λ°λ‘ React Hookμ΄λ€. useState, useEffect λ±μ Hookμ λ§μ΄ μ¬μ©νκ³€ νλλ° λ¬΄μμ React Hookμ΄λΌκ³ λΆλ₯΄λ κ²μ΄λ©° λ¬΄μ¨ μν μ νλμ§ λ₯Ό 보며 곡λΆν΄λ³΄μ
리μ‘νΈ μ»΄ν¬λνΈλ ν¨μνκ³Ό ν΄λμ€νμΌλ‘ μ μΈν μ μλ€. κΈ°λ³Έμ μΈ λ μ μΈλ°©μμ μ°¨μ΄λ μλμ κ°λ€.
ν΄λμ€ν μ»΄ν¬λνΈ
State, LifeCycle κΈ°λ₯ μ¬μ© κ°λ₯
λ©λͺ¨λ¦¬ μμμ ν¨μνλ³΄λ€ μ κ² μ¬μ©
ν¨μν μ»΄ν¬λνΈ
State, LifeCycle κΈ°λ₯ μ¬μ© λΆκ°λ₯
κ·ΈλΌ κ°λ¨ν μμ μ½λλ₯Ό μμ±ν΄λ³΄μ.
λ§μ½ μμ μ½λμμ μν μ΄κΈ° κ°μ μ μΈν΄μΌ νλ€κ³ κ°μ ν΄λ³΄μ. κ·Έλ λ€λ©΄ ν΄λμ€ν μ»΄ν¬λνΈμμλ μ½λλ₯Ό
μ΄λ κ² constructorμμμ this.state
λ₯Ό μ¬μ©νμ¬ μ μΈ ν μ μκ³ , this.setState(μνκ°)
λ₯Ό ν΅νμ¬ μν κ°μ λ³κ²½μ΄ κ°λ₯νλ€.
κ·Έλ λ€λ©΄ ν¨μν μ»΄ν¬λνΈμμλ μ΄λ»κ² μ μΈν κΉ?
λ§€μ° μ΅μν μ½λμ΄λ€. useState
λ₯Ό μ¬μ©νμ¬ μνκ°μ μ μΈνκ³ λ³κ²½νλ€.
κ·Έλ°λ° λΆλͺ ν¨μν μ»΄ν¬λνΈμμλ μνκ°μ κ΄λ ¨λ κΈ°λ₯μ μ¬μ©νμ§ λͺ»νλ€κ³ νλλ° μ°λ¦¬λ useStateλ₯Ό μ΄μ©νμ¬ μνκ°μ μ¬μ©νκ³ μλ€. μ΄ useStateκ° λ°λ‘ React Hookμ λνμ μΈ μμ΄λ€.
React Hookμ ν¨μν μ»΄ν¬λνΈμμ ν΄λμ€ν μ»΄ν¬λνΈμ κΈ°λ₯μ μ¨μ ν μ¬μ©ν μ μλλ‘ ν΄μ£Όλ κΈ°λ₯μ΄λ€.
κΈ°λ³Έμ μΌλ‘ ν¨μν μ»΄ν¬λνΈλ 리λ λλ§μ ν¨μμμ μ½λκ° λ€μ μ€νλλ€. λ°λΌμ μ»΄ν¬λνΈ μμ μνκ°μ΄ μ΄κΈ°νλμ΄ μνμ κ΄λ ¨λ κΈ°λ₯μ μ¬μ©νμ§ λͺ»νλ κ²μ΄λ€. κ·Έλ°λ° React Hookμ μνλ₯Ό λΈλΌμ°μ λ©λͺ¨λ¦¬μ μ μ₯νμ¬ μνκ°μ μ μ§ν μ μκ² λ§λ€μ΄ ν¨μν μ»΄ν¬λνΈμμ μ¬μ©λλ κ²μ΄λ€.
React Hookμ μ¬μ©νλ λͺκ°μ§ κ·μΉμ΄ μ‘΄μ¬νλ€.
μ΅μμ λ 벨μμ νΈμΆν΄μΌ νλ€. React Hookμ νΈμΆλ μμμ μμ‘΄νλ€. λ°λΌμ λ°λ³΅λ¬Έμ΄λ 쑰건문, μ€μ²©λ ν¨μ λ΄μμ μ¬μ©ν κ²½μ° μ€νμμκ° λ€λ°λ μ°λ €κ° μμ΄ ν μ΄ μ μμ μΌλ‘ μλνκΈ° μ΄λ ΅λ€.
리μ‘νΈ ν¨μ λ΄μμλ§ νΈμΆν΄μΌ νλ€.
μ΄μ μμ£Ό μ¬μ©λλ React Hook λͺκ°λ₯Ό μμ보μ
μμ μμλ₯Ό λ€μλ―μ΄ λμ μΌλ‘ μνλ₯Ό κ΄λ¦¬ ν μ μκ² λ§λλ Hookμ΄λ€. ν΄λμ€ν μ»΄ν¬λνΈμ setState
μ μ μ¬νκ² λμνλ€.
κΈ°λ³Έμ μΈ ννλ μλμ κ°λ€.
μ΄κΈ°κ°μ μΈμλ‘ λ°μΌλ©° νμ¬ μν, μνλ₯Ό μ λ°μ΄νΈ νλ ν¨μλ₯Ό λ°ννλ€.
Side Effectλ₯Ό μννλ Hookμ΄λ€.
Side Effectλ νλ‘κ·Έλ¨ μ€ν λμ€ μ΄λ ν κ°μ²΄μ μ κ·Όν΄μ λ³νκ° μΌμ΄λλ κ²μ λ§νλ€.
useEffectλ λ λλ§ μ΄ν μ§μ ν μμ‘΄μ±λ³μκ° λ³κ²½λ λ μ€νλλ Hookμ΄λ€. ν΄λμ€ μ»΄ν¬λνΈμ componentDidMount
, componentDidUpdate
μ μ μ¬νκ² λμνλ€. κΈ°λ³Έμ μΈ ννλ μλμ κ°λ€.
첫λ²μ§Έ μΈμλ μ»΄ν¬λνΈμμ μ€νν μ½λ°± ν¨μμ΄κ³ , λλ²μ§Έ μΈμλ μ½λ°± ν¨μκ° μ€νλλ μμ , μ¦ ν΄λΉ λ³μκ° λ³κ²½λ λ μ½λ°±ν¨μκ° μ€ννλΌκ³ μλ €μ£Όλ κ°μ΄λ€.
μ¦, μ»΄ν¬λνΈκ° λ€μ μ λ°μ΄ν° λλ€κ³ νλλΌλ νΉμ λ³μμ κ°μ μμ‘΄νμ¬ μ€νλλλ‘ μ€μ νλ Hookμ΄λ€.
Hookμ μ΄λ¦ κ·Έλλ‘ λ©λͺ¨νλ κΈ°λ₯μ κ°μ‘λ€. κ·Έλ λ€λ©΄ μ΄λλ© λ©λͺ¨νλκ²μ΄ κ΄κ±΄μ΄λ€. νλ‘κ·Έλ¨μ΄ λμΌν κ³μ°μ λ°λ³΅νλ μμ
μ μνν λ μ΄μ κ³μ° κ°μ λ©λͺ¨λ¦¬
μ μ μ₯νμ¬ λ°λ³΅μνμ μ κ±°νκ³ κ²°κ³Όμ μΌλ‘ μ»΄ν¬λνΈμ μ±λ₯μ μ΅μ ν μν€λλ° μ¬μ©λλ€.
κΈ°λ³Έμ μΈ ννλ μλμ κ°λ€.
useEffectμ μ μ¬νκ² 2λ²μ§Έ μΈμκ° λ³κ²½λλ©΄ ν¨μκ° μ€νλλ€. μ‘°κΈ λ€λ₯Έμ μ μμ‘΄μ±λ³μκ° λ³κ²½λμμλλ§ λ©λͺ¨λ¦¬μ μ μ₯ν κ°μ λ€μ κ³μ°νκ³ ν΄λΉ κ°μ μ¬μ©νλ μ»΄ν¬λνΈλ λͺ¨λ 리λ λλ§ λλ€. λ°λΌμ μμ‘΄μ± λ³μκ° λ³κ²½λμ§ μλλ€λ©΄ μ΄μ μ λ©λͺ¨λ¦¬μ μ μ₯λμ΄ μλ κ°μ λ°λ‘ λ°ννκ³ μ»΄ν¬λνΈλ 리λ λλ§ λμ§ μκΈ° λλ¬Έμ λλ¬Έμ μ΅μ νμ μ¬μ©λλ κ²μ΄λ€.