π 2024λ 11μ λ·μ§Έ μ£Ό ( 11.25 ~ 11.30 ) - μ€μ Q&A λͺ¨μ
"λ§μ½ κ° λ²νΌμ λλ₯΄λ©΄
βhelloβ,βhiβ,βyayaβκ° μμ±λλ 3κ°μ λ²νΌμ΄ μμ λ, μ¬μ©μκ° κ·Έ λ²νΌ 3κ°λ₯Ό μ°μμΌλ‘ λλ μ λ, 3λ²μ λ λλ§μ΄ μΌμ΄λλ κ±ΈκΉ?"
π κ²°λ‘
"μ΄λ¬ν λΆλΆμ μ±λ₯ μ΅μ νμ κ΄λ ¨μ΄ κΉλ€. μ¬μ©μκ° λ²νΌ 3κ°λ₯Ό λΉ λ₯΄κ² λλ μ λ, Reactλ κ°κ°μ λ²νΌ ν΄λ¦ μ΄λ²€νΈλ‘ μΈν΄ μνκ° λ³κ²½λμ§λ§, λ³κ²½μ μ²λ¦¬νλ λ°©μμ λ¨μν 3λ² λͺ¨λ κ°μ DOMμ μμ±νκ³ λΉκ΅νκ³ λ°μνλ κ² μλλ€."
λ°°μΉ μ
λ°μ΄νΈ(Batched Updates) λΌλ μ΅μ ν κΈ°λ²μ μ¬μ©νλ€. μ΄ κΈ°λ²μ μ¬λ¬ μν λ³κ²½μ΄ λ°μν΄λ, κ·Έ κ²°κ³Όλ₯Ό ν λ²μ λΉκ΅νκ³ λΈλΌμ°μ DOMμ λ°μν μ μλ€.μν λ³κ²½ μμ² : μ¬μ©μκ° λ²νΌμ λλ₯Ό λλ§λ€ μν λ³κ²½ μμ²μ΄ λ°μνλ€.
λ°°μΉ μ²λ¦¬ : Reactλ λ³κ²½ μμ²λ€μ λͺ¨μ νλμ λ λλ§ μ¬μ΄ν΄μμ μ²λ¦¬νλ€.
κ°μ DOM λΉκ΅ : λ³κ²½λ μνλ₯Ό κΈ°λ°μΌλ‘ μ΅μ’
μ κ°μ DOMμ μμ±νκ³ μ΄μ κ°μ DOMκ³Ό λΉκ΅νλ€.
DOM μ
λ°μ΄νΈ : λ³κ²½λ λΆλΆλ§ λΈλΌμ°μ DOMμ ν λ²μ λ°μνλ€
π κ²°λ‘
"μμ£Ό μ¬μ©νλ λ°μ΄ν°λ₯Ό μ μ₯ν΄λμλ€κ° λΉ λ₯΄κ² κΊΌλ΄ μ°λ κ²μ΄λ€."
Disable Cache λ‘ νμΈνλ κ² μ’λ€."μ‘°κ±΄λΆ λ λλ§μμ JSX λ΄λΆμμλ
ifλ¬Έμ μ¬μ©ν μ μμ΄μ JSX λ²μ λ°μμ μ¬μ©νλ€κ³ νλλ°, μ νν JSX λ²μκ° μ΄λμΌκΉ?"
π κ²°λ‘
"JSX λ΄λΆλ
returnλ¬Έ μμ μλ μ½λμ΄λ€."
{} λ₯Ό μ¬μ©νλ©΄ JavaScript μ½λλ₯Ό μ€νν μ μλ€."κ·Έλ¬λ©΄
ifλ¬Έλ{}λ₯Ό μ¬μ©νλ©΄ JSX λ΄λΆμμ μ¬μ©ν μ μλ κ±° μλκ°?"
π κ²°λ‘
"JSXμ JavaScript ννμμ μ¬μ©ν μ μλ μμμ΄μ§λ§,
ifλ¬Έμ ννμμ΄ μλλΌ λ¬Έμ΄κΈ° λλ¬Έμ μ¬μ©ν μ μλ€."
if , for"
[count, setCount]μμsetCountν¨μμμ(count +1)μ΄ μλ μ½λ°±ν¨μλ₯Ό μ°λ κ² λ μμ ν μ΄μ λ λκΉ?"
π κ²°λ‘
"
useStateλ ν΄λ‘μ λ₯Ό μ¬μ©νμ¬ μν κ°μ κ΄λ¦¬νλ€. Reactμ μν μ λ°μ΄νΈλ λΉλκΈ°μ μ΄κΈ°μ μ¬λ¬λ²setCountλ£° νΈμΆν λ, μν μ λ°μ΄νΈκ° μμλλ‘ λμνμ§ μμ μ μλ€. μ΄λ μ½λ°± ν¨μλ₯Ό μ¬μ©νκ² λλ©΄, μ΄μ μνλ₯Ό νμ€νκ² μ°Έμ‘°ν μ μκ³ μ΄λ₯Ό κΈ°λ°μΌλ‘ μμ νκ² μνλ₯Ό μ λ°μ΄νΈ ν μ μλ€."
useState λ μν κ°κ³Ό μνλ₯Ό λ³κ²½νλ ν¨μλ₯Ό λ°ννλ κ²μ΄λ©°, μ΄ λ°ν κ°λ€μ λ΄λΆμ μΌλ‘ ν΄λ‘μ λ₯Ό μ¬μ©νμ¬ μνλ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ€.ν΄λ‘μ λ λ³μμ λν μ°Έμ‘°λ₯Ό κΈ°μ΅νλ ν¨μ μμ μκ°ν΄λΌ.λΉλκΈ°μ μΌλ‘ μ²λ¦¬ λλ€. μ¦, setCount κ° νΈμΆλ λ, μ¦μ μνκ° λ³κ²½λλ κ²μ΄ μλλΌ μ
λ°μ΄νΈ νμ μν λ³κ²½μ μμ½ νκ³ μ»΄ν¬λνΈλ₯Ό μ¬λ λλ§ ν νμ μνλ₯Ό μ€μ λ‘ λ³κ²½νκ² λλ€.μ¦μ μνλ₯Ό λ³κ²½ν΄μ£Όλ κ²μ΄ μλλ°, μ΄μ μνλ₯Ό κΈ°μ€μΌλ‘ μ
λ°μ΄νΈκ° μΌμ΄λκΈ° λλ¬Έμ΄λ€. (μλμ μ½λλ₯Ό μ°Έκ³ )const [count, setCount] = useState(0);
setCount(count + 1); // 1
setCount(count + 1); // 1
setCount λ₯Ό νΈμΆνμ§λ§, μ
λ°μ΄νΈ λ μν κ°μ΄ μλ, count=0 μΈ μνλ₯Ό μ°Έμ‘°νμ¬ 2λ² λ€ 1 μ λ°ννκ³ μλ€.μ½λ°± ν¨μλ₯Ό μ¬μ©νλ©΄ μ΅μ μ΄μ μνλ₯Ό μμ νκ² μ°Έμ‘°ν μ μλλ°, μ΄κ²μ ν¨μν μ
λ°μ΄νΈ λ°©μ μ΄λΌκ³ νλ€.setCount κ° νΈμΆλ λ μ΄μ μνλ₯Ό μΈμλ‘ λ°λ ν¨μλ₯Ό μ λ¬νλ€.λ°°μΉ ν μμ κ°μ Έμ€κ³ , μ΄λ₯Ό ν¨μμ μΈμλ‘ μ λ¬ νμ¬ μ΅μ μνλ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ μνλ₯Ό κ³μ°ν μ μκ² ν΄μ€λ€.λ¨λ°©ν₯ λ°μ΄ν° νλ¦ κ³Όλ μ°κ΄μ΄ μλ€.μ¦μ μ μ©νλ λμ μ
λ°μ΄νΈ νμ μΆκ°νκ³ λ€μ λ λλ§ μμ μ ν λ²μ μ²λ¦¬ νλ€. (μμ λ°°μΉ μ
λ°μ΄νΈ μ°Έκ³ )μμ°¨μ μΌλ‘ μ€ν λλ€.
setCountκ° νΈμΆλλ©΄, Reactλ μ λ°μ΄νΈ νμ μν λ³κ²½ μμ²μ μΆκ°νλ€.- κ° μν μ λ°μ΄νΈλ μνκ° λ³κ²½λ λλ§λ€, μ΄μ μνλ₯Ό ν¨μμ μ λ¬νκ³ μ΄λ₯Ό λ°νμΌλ‘ μλ‘μ΄ μνλ₯Ό κ³μ°νλ€. μ΄λ Reactλ
μ λ°μ΄νΈ νμ μνλ₯Ό νλμ© μ²λ¦¬νλ©΄μ,setStateλ‘ μ λ¬λ ν¨μμ μ΄μ μν κ°μμλμΌλ‘ μ΅μ κ°μΌλ‘ μ λ°μ΄νΈνλ€.