리μ‘νΈ 16.8 λ²μ μ΄μ μμλ ν¨μν μ»΄ν¬λνΈμμ μν κ΄λ¦¬λ₯Ό ν μκ° μμμ. (컨λ²ν νλ μ¬λλ 보μλ€..) νμ§λ§ 16.8 λ²μ λΆν° Hooks λΌλ κΈ°λ₯μ΄ λμ λλ©° ν¨μν μ»΄ν¬λνΈμμ μνλ₯Ό κ΄λ¦¬ν μ μκ² λμλ€.!
β
β» Hook : ν¨μ μ»΄ν¬λνΈμμ React state (리μ‘νΈμμ μμ£Ό μ€μν κ°λ μ€ νλ) μ μλͺ μ£ΌκΈ° κΈ°λ₯(lifecycle features)μ μ°λν μ μκ² ν΄μ£Όλ ν¨μ.
β» μνκ΄λ¦¬(State Management) : λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ λ°©λ². μ¬λ¬ component κ°μ λ°μ΄ν° μ λ¬κ³Ό μ΄λ²€νΈ ν΅μ μ ν κ³³μμ κ΄λ¦¬νλ κ²μ μλ―Έ.
β
리μ‘νΈλ‘ κ°λ°μ νλ€λ³΄λ©΄ usestate λ₯Ό μ μ ν μμΉμμ μ μΈνκ³ , μ λ΄λ €μ£Όκ³ (μμ) κΌ¬μ΄μ§ μλλ‘ κ΄λ¦¬νλ κ²μ΄ κ³ μ€κΈ μ€ν¬μ΄λΌλ κ²μ κΉ¨λ«κ² λλ€. μ΄λ»κ² 보면 λ³μ μ μΈ λ§νΌμ΄λ μ μ¬μ©λλ©°, μ€μν κ°λ μ΄λΌ 1λ²μ§Έλ‘ λ£κ² λμλ€.
μ¬μ©λ°©λ²
import React, { useState } from 'react';
// react Hook μΈ usestateλ₯Ό μ¬μ©νκ² λ€.
function Counter() {
const [number, setNumber] = useState(0);
// λμ μΌλ‘ DOMμ λ³κ²½ μμΌμ€ λ³μ number μ μΈ
// usestate λ μ½κ² λ§νμ¬ get, set νμμΌλ‘ μ
νΈλ‘ μ μΈν΄μΌ ν¨.
const onIncrease = () => {
setNumber(number + 1);
}
const onDecrease = () => {
setNumber(number - 1);
}
return (
<div>
<h1>{number}</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
1. 리μ‘νΈ ν¨ν€μ§μμ useStateλ₯Ό λΆλ¬μ¨λ€.
2. μνμ κΈ°λ³Έκ°μ μ§μ΄ λ£μ΄ νΈμΆν΄μ€. get, set νμ. 첫λ²μ§Έ μμλ νμ¬ μν. λλ²μ§Έ μμλ setter ν¨μ.
3. μνλ κ³³μμ μ μ νκ² μ¬μ©ν΄μ€λ€.
μμ
μ Reactμμ DOMμ λ³νλ₯Ό μ£Όλ €λ©΄ λ³μλ₯Ό Usestateλ‘ μ μΈν΄μΌ νλκ±ΈκΉ?
리μ‘νΈ μ»΄ν¬λνΈλ mount-unmount-didmount νμμ μλͺ μ£ΌκΈ°κ° μ΄λ£¨μ΄μ§λ€.
μ¬κΈ°μ μΈλΆμ μΌλ‘ λ€μ΄κ°κ² λλ©΄, mount μνμμ νλ² λ λλ§μ μ€ννκ³ , νμλ update μνμ μ§μ νμ¬ shouldComponentUpdate === true μΌ λλ§ λ λλ§μ μ€ννκ² λλ€.
λ°λΌμ λ³κ²½λ λ³μκ° νλ©΄μ μ μ©λλ €λ©΄
1. state νΉμ propsμ λ³νμ΄ μΌμ΄λμΌν¨
2. λΆλͺ¨ μ»΄ν¬λνΈκ° λ λλ§ μμΌμΌν¨
3. forceUpdate λ₯Ό μ¬μ©ν΄μΌν¨.
μΈκ°μ§ μ€μ νλλ₯Ό μ νν΄μΌ νλ μν©μ΄ λ°μνκ² λλ κ²μ΄λ€.
β
νμ€ μμ½νμλ©΄, 리μ‘νΈ μλͺ μ£ΌκΈ° μ νΉμ± λλ¬Έμ λ³μλ₯Ό λ³κ²½νλλΌλ λ΄λΆμ κ°μ λ³νλμ§λ§ DOM μ, νλ©΄ μμ κ°μ νλ©΄ 리λ λλ§μ΄ μΌμ΄λμ§ μμκΈ° λλ¬Έμ λ³κ²½λμ§ μλ κ².
μΈμ μ¬μ©νλ©΄ μ’μκΉ?
β μν κ°μ΄ λΆκ·μΉν λ
const [testDate, setTestData] = useState();
μμ κ°μ ννλ‘ μ μΈμ΄ κ°λ₯νκΈ°μ, μ¬μ©μ μ λ ₯κ°μ΄ λΆκ·μΉνκ±°λ μμΈ‘ λΆκ°ν λ°μ΄ν°λ₯Ό λ°μ λ μ¬μ©νλ©΄ μ μ©νλ€.
β
β‘ μν κ΄λ¦¬κ° νμν λ.
β’ DOM λ³νλ₯Ό μΌμΌν€λ λ³μλ₯Ό μ μΈν λ.
- DOM λ³νλ₯Ό μΌμΌν€μ§ μλ λ³μμ κ²½μ° μΌλ° λ³μ const, var, let μΌλ‘ μ μΈνλ κ²μ΄ μμ μ .
+)
리μ‘νΈμμ μ 곡νλ 곡μ hook μ΄λ μμ μ±μ λν΄μλ λ―Ώκ³ μ¬μ©νμ¬λ λλ€.
β곡μ λ¬Έμλ₯Ό μ½κ±°λ κ°λ°νλ©° λκΌλ λνΌμ λ‘ μμ±νκ³ μμΌλ,
κΆκΈνμ μ μ΄λ μλͺ»λ μ μ΄ μλ€λ©΄ λκΈ λ¨κ²¨μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.