← λͺ©λ‘

React Component Lifecycle Methods μ†Œκ°œ πŸš€

μž‘μ„±: 2024λ…„ 09μ›” 30일읽기: μ•½ 3λΆ„

μ•ˆλ…•ν•˜μ„Έμš”, μ›Ή κ°œλ°œμ— 관심 μžˆλŠ” λͺ¨λ“  λΆ„λ“€! μ˜€λŠ˜μ€ 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 여정에 이 정보가 도움이 되길 λ°”λžλ‹ˆλ‹€! πŸš€