[React] React μ μλͺ μ£ΌκΈ°(Life Cycle) λ?
β¨ Life Cycle μ΄λ?
μ»΄ν¬λνΈκ° λΈλΌμ°μ μμ λνλκ³ (Mount), μ λ°μ΄νΈ λκ³ (Update), μ¬λΌμ§λ μΌλ ¨μ κ³Όμ μ μΉνλ€.
μ΄λ¬ν κ³Όμ μμ νΈμΆλλ λ©μλλ₯Ό Life Cycle Method λΌκ³ λΆλ₯΄λ©°, ν΄λμ€ν μ»΄ν¬λνΈμμλ§ μ¬μ©ν μ μλ€. (ν¨μν μ»΄ν¬λνΈλ React 16.8 λ²μ λΆν° λμ λμμΌλ©°, νμ¬λ useState λ useEffectλ‘ λμ± λ§μ΄ νμ©λλ€)
κ° λ¨κ³λ³λ‘ νΈμΆλλ λ©μλμ μμμ μ’ λ₯κ° λ€λ₯΄λ€.
β¨ 1. Mount : DOM μ μ리먼νΈλ₯Ό λ£λ μμ
constructor:
μ»΄ν¬λνΈ ν΄λμ€μ μμ±μ ν¨μμ΄μ, μ»΄ν¬λνΈκ° μμ±λ λ νΈμΆλλ ν¨μμ΄λ€. Stateμ λ€λ₯Έ κ°λ€μ μ΄κΈ°κ°μ μ§μ ν λ μ¬μ©νλ€.
λν, props λ₯Ό λ§€κ°λ³μλ‘ λ°κ³ , super(props) λ₯Ό μ μΈν΄μ£Όμ΄ λΆλͺ¨μ λ©μλλ₯Ό μμλ°μ μ μλλ‘ νλ€.
getDerivedStateFromProps: props μ state κ°μ λκΈ°ννλ€.
render: νμμμμ΄λ©°, 리μ‘νΈ μμλ₯Ό λ°ννλ€.
ComponentDidMount: μ»΄ν¬λνΈλ₯Ό μμ±νκ³ μ²« λ λλ§μ΄ λλ¬μ λ νΈμΆλλ€.
β¨ 2. Update : μ»΄ν¬λνΈμ state λ props μ λ³νκ° μκΈΈ λ
getDerivedStateFromProps
shouldComponentUpdate:
true λ₯Ό λ°ννλ©΄ μ»΄ν¬λνΈλ₯Ό 리λ λλ§νλ©°, false λ₯Ό λ°νν κ²½μ° λ¦¬λ λλ§μ μ§ννμ§ μκ³ μλμ λλ¨Έμ§ ν¨μλ€λ νΈμΆνμ§ μλλ€.
render: μμ λμΌνλ€.
getSnapshotBeforeUpdate: λ³κ²½λ μμκ° DOM μ λ°μλκΈ° μ μ νΈμΆλλ€.
ComponentDidUpdate: 리λ λλ§ νμ νΈμΆλλ€.
β¨ 3. Unmount : μ»΄ν¬λνΈκ° DOM μμ μ κ±°λ λ
componentWillUnmount: μ»΄ν¬λνΈκ° μ κ±°λκΈ° μ μ νΈμΆλλ€.
μ°Έκ³ μλ£
React 리μ‘νΈ - μ»΄ν¬λνΈ μλͺ μ£ΌκΈ° (Component Life Cycle)