React Component Lifecycle Methods μκ° π
μλ νμΈμ, μΉ κ°λ°μ κ΄μ¬ μλ λͺ¨λ λΆλ€! μ€λμ Reactμμ λ§€μ° μ€μν κ°λ μ€ νλμΈ Component Lifecycle Methodsμ λν΄ μμλ³΄λ €κ³ ν©λλ€. Reactλ₯Ό μ¬μ©νμ¬ μΉ μ ν리μΌμ΄μ μ κ°λ°ν λ, μ°λ¦¬λ μ»΄ν¬λνΈλ₯Ό λ§μ΄ μ¬μ©ν©λλ€. μ΄ μ»΄ν¬λνΈλ€μ μμ±λΆν° μλ©ΈκΉμ§ μ¬λ¬ λ¨κ³λ₯Ό κ±°μΉκ² λλλ°, μ΄λ¬ν κ³Όμ μ λ μ μ΄ν΄νκ³ μ μ΄ν μ μκ² λμμ£Όλ κ²μ΄ λ°λ‘ Lifecycle Methodsμ λλ€.
π± μ»΄ν¬λνΈμ νμ: Mounting
μ»΄ν¬λνΈκ° νλ©΄μ λνλκΈ° μμνλ λ¨κ³λ₯Ό 'Mounting'μ΄λΌκ³ ν©λλ€. μ΄ λ¨κ³μμλ μ£Όλ‘ μ»΄ν¬λνΈλ₯Ό μ΄κΈ°ννκ³ , νμν λ°μ΄ν°λ₯Ό λΆλ¬μ€λ μμ μ ν©λλ€.
class ExampleComponent extends React.Component {
constructor(props) {
super(props);
// μ¬κΈ°μ μ΄κΈ° μνλ₯Ό μ€μ ν μ μμ΅λλ€.
this.state = { hello: 'World' };
}
componentDidMount() {
// μ»΄ν¬λνΈκ° νλ©΄μ λνλ νμ μ€νλ©λλ€.
// API νΈμΆ κ°μ μΈλΆ λ°μ΄ν°λ₯Ό λΆλ¬μ€λ μμ
μ μ¬κΈ°μ ν©λλ€.
}
}
π μ»΄ν¬λνΈμ μ λ°μ΄νΈ
μ»΄ν¬λνΈμ μν(state)λ μμ±(props)μ΄ λ³κ²½λλ©΄, μ»΄ν¬λνΈλ μ λ°μ΄νΈ κ³Όμ μ κ±°μΉκ² λ©λλ€. μ΄ κ³Όμ μμλ λ³κ²½λ λ°μ΄ν°λ₯Ό νλ©΄μ λ°μνκΈ° μν μμ μ΄ μ΄λ£¨μ΄μ§λλ€.
class ExampleComponent extends React.Component {
componentDidUpdate(prevProps, prevState) {
// μ»΄ν¬λνΈκ° μ
λ°μ΄νΈλ νμ μ€νλ©λλ€.
// μ΄μ μνλ μμ±κ³Ό λΉκ΅νμ¬ νΉμ μμ
μ μνν μ μμ΅λλ€.
}
}
π μ»΄ν¬λνΈμ μ£½μ: Unmounting
λ§μ§λ§μΌλ‘, μ»΄ν¬λνΈκ° λ μ΄μ νμνμ§ μμ νλ©΄μμ μ¬λΌμ§λ λ¨κ³λ₯Ό 'Unmounting'μ΄λΌκ³ ν©λλ€. μ΄ λ¨κ³μμλ μ»΄ν¬λνΈκ° μ¬μ©νλ μμμ μ 리(clean-up)νλ μμ μ μ£Όλ‘ ν©λλ€.
class ExampleComponent extends React.Component {
componentWillUnmount() {
// μ»΄ν¬λνΈκ° νλ©΄μμ μ¬λΌμ§κΈ° μ§μ μ μ€νλ©λλ€.
// νμ΄λ¨Έ μ κ±°, λ€νΈμν¬ μμ² μ·¨μ λ±μ μ 리 μμ
μ ν©λλ€.
}
}
μ΄μμΌλ‘ Reactμ Component Lifecycle Methodsμ λν κ°λ¨ν μκ°λ₯Ό λ§μΉ©λλ€. μ΄ λ©μλλ€μ μ μ΄ν΄νκ³ μ¬μ©νλ©΄, μ»΄ν¬λνΈμ μλͺ μ£ΌκΈ°λ₯Ό ν¨κ³Όμ μΌλ‘ κ΄λ¦¬νλ©΄μ λμ± ν¨μ¨μ μΈ μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€. μ¬λ¬λΆμ React μ¬μ μ μ΄ μ λ³΄κ° λμμ΄ λκΈΈ λ°λλλ€! π