React Component Lifecycle Methods μκ° π
μλ νμΈμ, μΉ κ°λ°μ κ΄μ¬ μλ λͺ¨λ μ£Όλμ΄ κ°λ°μ μ¬λ¬λΆ! μ€λμ Reactμμ λ§€μ° μ€μν κ°λ μ€ νλμΈ Component Lifecycle Methodsμ λν΄ μμλ³Ό κ±°μμ. Reactλ₯Ό μ¬μ©νλ©΄μ μ»΄ν¬λνΈκ° μμ±λκ³ μ λ°μ΄νΈλλ©° μ¬λΌμ§λ κ³Όμ μ μ΄ν΄νλ κ²μ νμμ μ λλ€. μ΄ κ³Όμ μ μ μ΄ν΄νλ©΄, λ ν¨μ¨μ μ΄κ³ κ°λ ₯ν μ ν리μΌμ΄μ μ λ§λ€ μ μμ΄μ.
μ»΄ν¬λνΈ μλͺ μ£ΌκΈ° μ΄ν΄νκΈ°
React μ»΄ν¬λνΈμ μλͺ μ£ΌκΈ°λ ν¬κ² μΈ λΆλΆμΌλ‘ λλ μ μμ΄μ: λ§μ΄ν (Mounting), μ λ°μ΄νΈ(Updating), μΈλ§μ΄ν (Unmounting)μ λλ€.
λ§μ΄ν (Mounting)
λ§μ΄ν μ μ»΄ν¬λνΈκ° DOMμ μ²μ μ½μ λλ κ³Όμ μ λ§ν΄μ. μ΄ λ¨κ³μμλ μ£Όλ‘ μ΄κΈ° μ€μ μ ν©λλ€. μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ λ©μλλ€μ΄ μμ΄μ:
constructor()
: μ»΄ν¬λνΈκ° μμ±λ λ κ°μ₯ λ¨Όμ μ€νλλ©°, μ΄κΈ° μνλ₯Ό μ€μ ν μ μμ΄μ.render()
: μ»΄ν¬λνΈμ UIλ₯Ό μ μν©λλ€. React μμλ₯Ό λ°νν΄μ.componentDidMount()
: μ»΄ν¬λνΈκ° λ§μ΄νΈλ μ§νμ νΈμΆλ©λλ€. μ¬κΈ°μ λ°μ΄ν° λ‘λ© κ°μ μΈλΆ API νΈμΆμ ν μ μμ΄μ.
μ λ°μ΄νΈ(Updating)
μ»΄ν¬λνΈλ props λλ stateμ λ³κ²½μΌλ‘ μΈν΄ μ λ°μ΄νΈλ μ μμ΄μ. μ΄ κ³Όμ μμλ μ»΄ν¬λνΈκ° 리λ λλ§λ©λλ€. μ λ°μ΄νΈ κ³Όμ μμ νΈμΆλλ λ©μλλ λ€μκ³Ό κ°μμ:
shouldComponentUpdate()
: μ»΄ν¬λνΈκ° μ λ°μ΄νΈ λμ΄μΌ ν μ§ κ²°μ ν©λλ€. μ±λ₯ μ΅μ νμ μ μ©ν΄μ.render()
: μ»΄ν¬λνΈμ UIλ₯Ό μ λ°μ΄νΈνκΈ° μν΄ λ€μ νΈμΆλ©λλ€.componentDidUpdate()
: μ»΄ν¬λνΈμ μ λ°μ΄νΈκ° λλ νμ νΈμΆλ©λλ€. μ¬κΈ°μλ μ λ°μ΄νΈμ λ°λ₯Έ νμ μ²λ¦¬λ₯Ό ν μ μμ΄μ.
μΈλ§μ΄ν (Unmounting)
μΈλ§μ΄ν μ μ»΄ν¬λνΈκ° DOMμμ μ κ±°λλ κ³Όμ μ λλ€. μ΄ λ¨κ³μμλ μ£Όλ‘ μ 리 μμ μ ν©λλ€. μλ₯Ό λ€μ΄:
componentWillUnmount()
: μ»΄ν¬λνΈκ° μΈλ§μ΄νΈλκΈ° μ§μ μ νΈμΆλ©λλ€. μ¬κΈ°μλ νμ΄λ¨Έλ₯Ό μ κ±°νκ±°λ, λ€νΈμν¬ μμ²μ μ·¨μνλ λ±μ μμ μ ν μ μμ΄μ.
μ€μ μμ λ‘ λ³΄λ μλͺ μ£ΌκΈ° λ©μλ
μ΄μ κ°λ¨ν μ½λ μ€λν«μ ν΅ν΄ componentDidMount()
λ©μλλ₯Ό μ΄λ»κ² μ¬μ©νλμ§ μ΄ν΄λ³Όκ²μ.
class Welcome extends React.Component {
constructor(props) {
super(props);
this.state = { hello: 'World' };
}
componentDidMount() {
console.log('μ»΄ν¬λνΈκ° λ§μ΄νΈλμμ΅λλ€!');
}
render() {
return <h1>Hello, {this.state.hello}!</h1>;
}
}
μ μμ μμλ μ»΄ν¬λνΈκ° λ§μ΄νΈλ λ μ½μμ λ©μμ§λ₯Ό μΆλ ₯ν©λλ€. μ΄μ²λΌ componentDidMount()
λ μ»΄ν¬λνΈκ° νλ©΄μ λνλ μ§νμ νμν μμ
μ μννλ λ° μ¬μ©λ©λλ€.
Reactμ μ»΄ν¬λνΈ μλͺ μ£ΌκΈ° λ©μλλ₯Ό μ΄ν΄νκ³ νμ©νλ κ²μ μ ν리μΌμ΄μ μ λ ν¨μ¨μ μΌλ‘ λ§λ€κ³ , λ²κ·Έλ₯Ό μ€μ΄λ λ° ν° λμμ΄ λ©λλ€. μ€λ λ°°μ΄ λ΄μ©μ μ νμ©ν΄λ³΄μΈμ!
μ΄μμΌλ‘ React Component Lifecycle Methodsμ λν μκ°λ₯Ό λ§μΉ©λλ€. λ€μ μκ°μλ λ μ¬νλ μ£Όμ λ‘ λ§λμ. Happy coding! π