React Life Cycle μ΄λ?
LifeCycle μ μ»΄ν¬λνΈμ μλͺ μ£ΌκΈ°μ λλ€.
μ»΄ν¬λνΈκ° λΈλΌμ°μ μμ λνλκ³ , μ λ°μ΄νΈλκ³ , μ¬λΌμ§ λ νΈμΆλλ λ©μλλ€μ΄ μμ΅λλ€.
μ΄ λ©μλλ€μ μλͺ μ£ΌκΈ° λ©μλλΌκ³ ν©λλ€.
μ»΄ν¬λνΈλ Class component μ function component κ° μμ΅λλ€.
Class Component Life Cycle
Class Component μμλ λΌμ΄ν μ¬μ΄ν΄μ λ°λΌμ μ°λ¦¬κ° μνλ μκ°μ μνλ μ½λλ₯Όμ€νμν€κ³ μΆλ€λ©΄, μ ν΄μ§ λ©μλλ₯Ό ν΅ν΄μ μ¬μ©ν μ μμ΅λλ€. μλ function component μμλ λΆκ°λ₯νμ§λ§, νμ¬λ hook μ ν΅ν΄μ κ°λ₯νκ² λμμ΅λλ€.
μ 체μ μΈ νλ¦μ μμ μ΄λ―Έμ§λ₯Ό μ°Έκ³ νμ§λ§ μΈλΆμ μΈ λ©μλλͺ μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ νμ΅λλ€.
리μ‘νΈ λ²μ μ΄ μ λ°μ΄νΈλλ©΄μ μ¬λΌμ§κ±°λ λ©μλλͺ μ΄ λ³κ²½λ κ²λ€μ΄ μμ΅λλ€.
μ΄ν μ΄λ―Έμ§λ€μ λͺ¨λ 곡μ λ¬Έμλ₯Ό μΈμ©νμ΅λλ€.
Index.js μμ root λ₯Ό render νκ² λλ©΄ μλ μμλ‘ λ©μλλ₯Ό νΈμΆν©λλ€.
μ΄ λ©μλλ€μ λ¬Άμ΄μ Mounting μ΄λΌκ³ ν©λλ€.
- constructor() : μ»΄ν¬λνΈ μμ±
- static getDerivedStateFromProps() : μνλ₯Ό μ λ°μ΄νΈνλ €λ©΄ κ°μ²΄(state) λ₯Ό λ°ννκ±°λ μλλ©΄ nullμ λ°ν
- render() : νλ©΄μ κ·Έλ €μ§. mounting
- componentDidMount() : render νμ μ€ννκ³ μΆμ μ½λλ₯Ό λ£κΈ°
μμ λ©μλλ€μ render(), getDerivedStateFromProps() λ₯Ό μ μΈνκ³ λ μ»΄ν¬λνΈκ° μμ±λ λ, λ± ν λ²λ§ μ€νλ©λλ€.
μμ λ©μλκ° λͺ¨λ μ€νλμ΄ νλ©΄μ΄ λͺ¨λ κ·Έλ €μ§ ν (mount λ ν) state κ° λ³κ²½λλ©΄, μλμ λ©μλλ€μ΄ μμλλ‘ μ€νλ©λλ€.
μλ λ©μλλ€μ λ¬Άμ΄μ Updating μ΄λΌκ³ ν©λλ€.
- static getDerivedStateFromProps() : μνλ₯Ό μ λ°μ΄νΈνλ €λ©΄ κ°μ²΄(state) λ₯Ό λ°ννκ±°λ μλλ©΄ nullμ λ°ν
- shouldComponentUpdate() : reder λ₯Ό νΈμΆν΄μΌ νλμ§ μ²΄ν¬ boolean κ° λ¦¬ν΄
- render() - mountingμ renderμ λμΌ
- getSnapshotBeforeUpdate() : Domμ μ»€λ° μ νΈμΆ. Dom μ μΌλΆ μ 보λ₯Ό μΊ‘μ³(ex: μ€ν¬λ‘€ μμΉ)ν μ μμ΅λλ€.
- componentDidUpdate() : render update μ μ μ€ννκ³ μΆμ μ½λλ₯Ό λ£κΈ° (ex.μ΄μ state μ νμ¬ state λΉκ΅νμ¬ λΆνμν μ²λ¦¬λ₯Ό λ§μ)
μλλ μ»΄ν¬λνΈκ° νλ©΄μμ μ¬λΌμ§κ³ (Unmounted) μλ©Έ (Destroyed) λκΈ° μ§μ μ μ€νλ©λλ€.
μλ λ©μλλ₯Ό ν΅ν΄ μ¬μ©ν 리μμ€λ€μ ν΄λ¦¬λ μμ μ΄ κ°λ₯ν©λλ€.
Function Component Life Cycle
Function Component μμλ Hook μ ν΅ν΄μ Class Component λ§ μ¬μ© κ°λ₯νλ λ©μλλ€μ λ체ν μ μμ΅λλ€.
useEffect λ render() κ° μ²μ νΈμΆλκ³ λλ¬μ λ, νΉμ state νΉμ μ»΄ν¬λνΈκ° μ¬ λ λλ§ λμ λ νΈμΆλ©λλ€.
useEffect(function(){},[]); // 첫 λ²μ§Έ μΈμλ‘λ ν¨μ. λ λ²μ§Έ μΈμλ‘λ μμ‘΄μ± λ°°μ΄μ λ°μ΅λλ€.
// λ λ²μ§Έ μΈμλ μλ΅ κ°λ₯νλ©°, μλ΅νλ©΄ μ»΄ν¬λνΈκ° λ λλ§λ λλ§λ€
// 첫 λ²μ§Έ μΈμμ ν¨μκ° νΈμΆλ©λλ€.
// λ λ²μ§Έ μΈμμ λΉ λ°°μ΄ [] μ λ£μΌλ©΄,
// μ»΄ν¬λνΈκ° μ²μ λ λλ§λ λλ§ μ€νλ©λλ€.
// λ λ²μ§Έ μΈμμ νΉμ κ°μ λ£μΌλ©΄, κ·Έ κ°μ΄ λ³κ²½λ λλ§
// 첫 λ²μ§Έ μΈμμ ν¨μκ° νΈμΆλ©λλ€.
useEffect() hook μΌλ‘ componentDidMount() μ componentDidUpdate() λ₯Ό μ¬μ©ν μ μμ΅λλ€.
λν useEffect μ return μ μ»΄ν¬λνΈκ° unMount λ λ, μ€νμν€κ³ μΆμ μ½λλ€μ λ£μΌλ©΄ componentWillUnmount() μ λμΌνκ² μ¬κ²¨μ§λλ€. μλ₯Όλ€μ΄, μ»΄ν¬λνΈμμ μ¬μ©ν νμ΄λ¨Έλ μ΄λ²€νΈλ€μ μ’ λ£νλ μ½λλ₯Ό return μ λ£μ΄μ£Όλ©΄ λκ² μ΅λλ€.
uesEffect(function(){
...
return (....) // componentWillUnmount()
})
useEffect() hook μ return μ ν΅ν΄ componentWillUnmount() λ₯Ό μ¬μ©ν μ μμ΅λλ€.
μ°Έκ³ μλ£
https://www.youtube.com/watch?v=LgEJlKfHJW0&t=46s
https://www.youtube.com/watch?v=VgbMW2f5laM
'React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
React Redux Toolkit μ¬μ©νκΈ° (0) | 2022.08.29 |
---|---|
React Hook μ΄λ ? (0) | 2022.08.28 |
React Ref μ Dom (1) | 2022.08.27 |
React λ°μ΄ν° λ°μΈλ© (0) | 2022.08.24 |
React νλ‘μ νΈ GitHub Pages λ°°ν¬νκΈ° (0) | 2022.08.24 |