[React] Rerendering(리λ λλ§)
리μ‘νΈλ₯Ό 곡λΆνλ€λ³΄λ©΄, ν¨μ¨μ±μ΄λΌλ λ¨μ΄λ₯Ό λΉΌλμ μκ° μλ κ² κ°λ€. μ λ²μ μ 리νλ DOMμμμ κ°μ λλ κ·Έλ κ³ , μ΄λ€ ν κ°λ μ 곡λΆν λλ§λ€ κ·Έ κ°λ μ΄ ν¨μ¨μ μ΄κ² λμμ€λ€κ³ νλ κ²μ΄ λ§λ€λκ²μ΄λ€.
λλ μ μ μ΄λ° μ§λ¬Έμ λ°μ μ μ΄ μλ€. '리λ λλ§μ΄ λμ§ μμλμ?'
μ΄ κΈμ 보λ μ¬λ¬λΆλ€μ λ¬΄μ¨ λλ΅μ νκ² λκ°?
λλ κ·Έλλ λΆλλ½μ§λ§ 리λ λλ§μ΄ κ·Έλ₯ λ λλ§μ λ€μνλ€λ κ±° μλκ°? μ΄λ κ² μκ°νμλ€.
μ¬μ€ λ§ λ»μ κ·Έλ λ€. νμ§λ§, μ§λ¬Έμ μλκ° κ³Όμ° μ§μ§ λ»μ λ¬Όμ΄λ³΄λ κ²μ΄μμκΉ?
μ΄λ λͺ¨λ μ§λ¬Έμ λ΅μ κ°λ‘κ°μ΄ ν λλ μ§μ μμ μ°¨λΆν λ€ μ μ΄λ¨μλ€. κ·Έλ¦¬κ³ λ€μ 곡λΆνλ©΄μ μ±μλκ°κΈ° μμνλ€.
리λ λλ§μ 무μμΈμ§ κ·Όλ³ΈλΆν° μμμΌνλ©°, μ μ΄κ±Έ μμμΌνλμ§, μ΄λμμ μ΄ κ°λ μ΄ μ°μ΄λ κ±΄μ§ λ± λ΄κ° μΌλ§λ μ§μ¬μΌλ‘ μ¬μ©νκ³ λκΌλ λ°λ₯Ό κ³λ€μ¬μ λ§ν΄μΌνλ€.
λλ² λ€μ κ°μ μ€μλ₯Ό λ°λ³΅νμ§ μκΈ° μν΄μ μ΄λ κ² μ 리ν΄λ³΄λ €κ³ νλ€.
μ΄λμ μ§μ§ κ²½νμ΄ μ€μνλ€ μκ°νλ€. μ’μ κ²½νμ΄λ λμ κ²½νμ΄λ κ΅νμ λλΌλ κ² κ°λ€.
μ΄λ²μ μ΄ λ¦¬λ λλ§μ μ°Ύμ보λ€κ° μ 리λ₯Ό μ ν΄λμ λΈλ‘κ·Έκ° μκΈΈλ μ°Έκ³ ν΄μ μμ±νμλ€.
μ¬κΈ°μ μ»΄ν¬λνΈμ renderν¨μλ₯Ό μ¬μ©ν΄μ μ€λͺ μ κ³μνκΈ° λλ¬Έμ κ³μ μ»΄ν¬λνΈμ λ λν¨μμ λν΄μ μ§κ³ λμ΄κ°κ² λ€!
μ»΄ν¬λνΈ
λΆνμ΄λΌκ³ λ³Ό μ μλ€.
λ²νΌ, ν μ€νΈ λ°μ€ λ±μ μμλ€μ μ»΄ν¬λνΈλ‘ μ μν΄μ 곡μ₯μ²λΌ UIλ₯Ό μ€κ³ν μ μλ€. μ΄λ μ¬μ¬μ©μ΄ μ©μ΄νκ² λ§λ€μ΄μ£Όλ©°, 무μλ³΄λ€ μ»΄ν¬λνΈ λ΄μ μκΉμ λ° μλλ°©μμ μ μν΄μ€λ€.
Render ν¨μ
UIλ₯Ό λνλΌ λ λμ 보μ΄λ νλ©΄μ ꡬμ±ν΄μ£Όλ λ λλ§μ΄ νμνλ€.
리μ‘νΈμμλ renderν¨μκ° κ·Έ μν μ νλ€.
renderν¨μλ μ»΄ν¬λνΈκ° μ΄λ»κ² μκ²Όλμ§ μ μνκ³ , λ·°μ ꡬμ±κ³Ό μλ λ°©μμ λν μ 보λ₯Ό μ§λ κ°μ²΄λ₯Ό λ°ννλ€.
μ΄κΈ° λ λλ§
renderν¨μλ‘ μ»΄ν¬λνΈμ μ 보λ₯Ό μ΄μ©ν΄ νλ©΄μ ꡬμ±(λ λλ§)νλ€.
λ λλ§μ΄ λλ©΄, renderν¨μκ° λ°νν κ°μ²΄μ μ 보λ₯Ό μ΄μ©νμ¬ λ¬Έμμ΄ νμμ html μ½λλ₯Ό λ°νν΄μ νΉμ DOMμ μ£Όμ νλ€.
- μ»΄ν¬λνΈ μ μ
- μ»΄ν¬λνΈμ μ 보λ₯Ό μ΄μ©ν΄ λ λλ§
- λ¬Έμμ΄ νμ html μ½λ λ°ν
- DOMμμμ μ£Όμ
리λ λλ§
리μ‘νΈμμ λ·°λ₯Ό μ λ°μ΄νΈ ν λλ₯Ό 리λ λλ§νλ€κ³ νλ€. μ΄κ²μ μ μ DOM κ°λ μ 곡λΆνλ κ²μ μ¬κΈ°μ μ λͺ©μν€λ©΄λλ€! 리λ λλ§μ νλ©΄, λ·°λ₯Ό λ³νμν€λ κ²μΌλ‘ 보μ΄λ μ¬μ€ renderν¨μλ‘ μΈν΄ μλ‘μ΄ μμλ‘ κ°μλΌμμ§λ κ²μ΄λ€.
λ°μ΄ν°λ₯Ό μ λ°μ΄νΈνμ λ, μ»΄ν¬λνΈλ renderν¨μλ₯Ό μ¬μ°¨ νΈμΆν΄μ μλ‘μ΄ λ·°λ₯Ό μμ±νλ€. μ΄κ²μ DOMμ κ³μ μλ‘ κ°μμΌνλ κ²κ³Ό κ°μ κ²μ²λΌ κ³Όλν μ¬μ©μΌλ‘ ν¨μ¨μ±μ΄ κ΅μ₯ν λ¨μ΄μ§λ€. μ΄λ₯Ό 리μ‘νΈμμ κ°μ DOMμ μ¬μ©ν΄μ μ΅μ’ μ μΌλ‘ λ³ν λΆλΆλ§ DOMμ μ μ©νλ―μ΄, μ΄μ μ μμ±ν μ»΄ν¬λνΈ μ 보μ λ€μ λ λλ§ν μ 보λ₯Ό λΉκ΅ν΄ μ΅μνμ μ°μ°μΌλ‘ DOMνΈλ¦¬λ₯Ό μ λ°μ΄νΈνκ² λλ€κ³ 보μλ€.
μ 리νλ©΄,
- λ°μ΄ν°μ μ λ°μ΄νΈ
- μ λ°μ΄νΈλ λ°μ΄ν°λ₯Ό μ΄μ©ν renderν¨μμ 리λ λλ§
- μ΄μ μ μ»΄ν¬λνΈ, 리λ λλ§λ μ»΄ν¬λνΈμ μ°¨μ΄ λΉκ΅
- λ°λ μμλ€λ§ DOMμ λ°μ
리λ λλ§μ νλ μν©
- μμ μ state κ° λ³κ²½
- λΆλͺ¨ μ»΄ν¬λνΈμ 리λ λλ§
- μμ μ΄ μ λ¬λ°μ props κ° λ³κ²½
- κ°μ μ λ°μ΄νΈ(forceUpdate) μ€νμ