2023/12/18(μ)
ν΄λ‘μ λ μ΄λ»κ² νμ©νλκ°
μ μ μ€μ½νλ μ΄λμλ μνλ κ°μ κΊΌλ΄μ¬ μ μλ€λ μ₯μ μ΄μλ€.
νμ§λ§ λꡬλ μ κ·Όν μ μκ³ μμ ν μ μλ€λ λ¨μ μ΄ μλ€.
<script>
var counter = 0
function handleClick(){
counter++
}
</script>
μ μμ μ½λλ₯Ό μ΄ν΄λ³΄λ©΄ counter λ³μλ ν° λ¬Έμ λ₯Ό κ°μ§κ³ μλ€.
λ¬Έμ λ μ μ λ 벨μ μ μΈλΌ μμ΄μ λꡬλ μμ ν μ μλ€λ κ²μ΄λ€.
<script>
function Counter() {
var counter = 0
return{
increase: function() {
return ++counter
},
decrease : function () {
return --counter
},
counter: function() {
console.log('counterμ μ κ·Όν¨')
return counter
},
}
}
var c = Counter()
console.log(c.increase()) // 1
console.log(c.increase()) // 2
console.log(c.increase()) // 3
console.log(c.decrease()) // 2
console.log(c.counter()) // 2
</script>
μμ μμ μ½λμ κ°μ΄ μ½λλ₯Ό λ³κ²½νμ λ μ»μ μ μλ μ΄μ μλ μ¬λ¬ κ°μ§κ° μλ€..
λ¨Όμ counter λ³μλ₯Ό μ§μ μ μΌλ‘ λ
ΈμΆνμ§ μμμΌλ‘μ¨ μ¬μ©μκ° μ§μ μμ νλ κ²μ λ§μμμ λ¬Όλ‘ ,μ κ·Όνλ κ²½μ°λ₯Ό μ νν΄ λ‘κ·Έλ₯Ό λ¨κΈ°λ λ±μ
λΆμ°¨μ μΈ μμ
λ μνν μ μκ² λλ€.
λν counter λ³μμ μ
λ°μ΄νΈλ₯Ό increaseμ decreaseλ‘ μ νν΄ λ¬΄λΆλ³νκ² λ³κ²½λλ κ²μ λ§μλ€. μ΄μ²λΌ ν΄λ‘μ λ₯Ό νμ©νλ©΄ μ μ μ€μ½νμ μ¬μ©μ λ§κ³ , κ°λ°μκ° μνλ μ λ³΄λ§ κ°λ°μκ° μνλ λ°©ν₯μΌλ‘ λ
ΈμΆμν¬ μ μλ€λ μ₯μ μ΄ μλ€.
κ·Έλ λ€λ©΄ 리μ‘νΈ ν¨μν μ»΄ν¬λνΈ ν
μμ ν΄λ‘μ λ μ΄λ»κ² μ¬μ©λλμ§ μ΄ν΄λ³΄μ.
ν΄λ‘μ μ μ리λ₯Ό μ¬μ©νκ³ μλ λνμ μΈ κ² μ€ νλκ° λ°λ‘ useState
λ€.
<script>
function Component() {
const [state,setState] = useState()
function handleClick(){
//useState νΈμΆμ μμμ λλ¬μ§λ§,
// setStateλ κ³μ λ΄λΆμ μ΅μ κ°(prev)μ μκ³ μλ€.
//μ΄λ ν΄λ‘μ λ₯Ό νμ©νκΈ° λλ¬Έμ κ°λ₯νλ€.
setState((prev) => prev +1)
}
}
</script>
useState ν¨μμ νΈμΆμ Component λ΄λΆ 첫 μ€μμ μ’
λ£λλλ°, setStateλ
useState λ΄λΆμ μ΅μ κ°μ μ΄λ»κ² κ³μν΄μ νμΈν μ μμκΉ?
λ°λ‘ ν΄λ‘μ κ° useState λ΄λΆμμ νμ©λκΈ° λλ¬Έμ΄λ€.
μΈλΆ ν¨μ(useState)κ° λ°νν λ΄λΆ ν¨μ(setState)λ μΈλΆ ν¨μ(useState)μ νΈμΆμ΄ λλ¬μμλ μμ μ΄ μ μΈλ μΈλΆ ν¨μκ° μ μΈλ νκ²½(stateκ° μ μ₯λΌ μλ μ΄λκ°)μ κΈ°μ΅νκΈ° λλ¬Έμ κ³μν΄μ state κ°μ μ¬μ©ν μ μλκ²μ΄λ€.
β‘οΈ λ€μ κΈμμλ ν΄λ‘μ λ₯Ό νμ©ν λ μ£Όμν μ¬νμ λν΄ μ΄ν΄λ³΄μ.