리μ‘νΈμμ μ»΄ν¬λνΈκ° μ€ν λ λ μ»΄ν¬λνΈμλ μμ±, μ
λ°μ΄νΈ, μ κ±° λμμ μλͺ
μ£ΌκΈ°λ₯Ό κ°μ§κ² λλ€.
μλͺ
μ£ΌκΈ°(lifecycle) λ©μλλ ν΄λμ€ν μ»΄ν¬λνΈμμ μ¬μ©λλ©°, ν¨μν μ»΄ν¬λνΈμμλ Hookμ μ¬μ©νλ€.
μλͺ
μ£ΌκΈ° λ©μλμ Hookμ λΉμ·νκ² μ¬μ©λμ§λ§ 컀λ²νμ§ μλ κΈ°λ₯λ μκ³ , μλλ°©μλ λ€λ₯΄λ€.
Reactμμ λλλ§μ΄ μ€νλλ κ³Όμ
- Props
- State
- forceUpdate()
- λΆλͺ¨ μ»΄ν¬λνΈμ λλλ§
μ»΄ν¬λνΈκ° λ³κ²½λλ μ¬λ¬ μμΈλ€κ³Ό μμνλ μμ μ»΄ν¬λνΈ λ± μ¬λ¬ μ΄μ λ‘ λΆνμν λλλ§μ΄ μΌμ΄λ μ μλλ°, λΆνμν λλλ§μ μ±λ₯μ λ¬Έμ λ₯Ό λ°μμν¨λ€.
λͺ¨λ μ»΄ν¬λνΈλ μ¬λ¬ μ’ λ₯μ μλͺ μ£ΌκΈ° λ©μλλ₯Ό κ°μ§κ³ μ΄ λ©μλλ€μ νΉμ μμ μ μ€ννλλ‘ μ€μ ν΄ μ€ μ μλ€.
constructor(props)
state
μ λ£μ΄μ£Όκ³ μΆμ λ μ¬μ©νλ€.static
μ΄ νμνκ³ , this
λ₯Ό μ‘°νν μ μλ€.state
λ‘ μ€μ λκ³ , nullμ λ°ννκ² λλ©΄ μ무 μΌλ λ°μνμ§ μλλ€.static getDerivedStateFromProps(props, state)
render()
componentDidMount()
propsλ stateκ° λ³κ²½λλ©΄ κ°±μ νλ€.
static getDerivedStateFromProps(props, state)
forceUpdate()
λ shouldComponentUpdate
λ₯Ό 무μνκ³ λλλ§ κ°ννλ€.shouldComponentUpdate(nextProps, nextState)
componenetDidUpdate()
ν¨μμμ λ°μμ μ¬μ©ν μ μλ€.getSnapshotBeforeUpdate(prevProps, prevState)
getSnapshotBeforeUpdate
μμ λ°νν κ°μ μ¬μ©ν μ μλ€.componentDidUpdate(prevProps, prevState, snapshot)
μ»΄ν¬λνΈκ° DOM μμμ μ κ±°λ λ νΈμΆλλ€.
componentWillUnmount()
μμ μλͺ μ£ΌκΈ° λ©μλμ λ¬λ¦¬ μλμ λ©μλλ€μ μ¬μ©μκ° μ§μ μ»΄ν¬λνΈ λ΄μμ νΈμΆ ν μ μλ€.
componentDidUpdate
λλ setState
μ μ½λ°±μ μ¬μ©ν΄ λ°λ‘ κ°μ λ³κ²½ν μ μλ€.shouldComponentUpdate()
κ° falseλ₯Ό λ°ννμ§ μλλ€λ©΄ setState()
λ νμ λλλ§μ λ°μμν¨λ€.this.setState((state, props) => {
return {counter: state.counter + props.step};
});
state
λλ props
κ° λ³κ²½λλ©΄ μ»΄ν¬λνΈκ° 리λλλ§ λλ κ²μ΄ κΈ°λ³Έ λμμ΄λ€.forceUpdate()
λ₯Ό νΈμΆνλ©΄ render()
κ° νΈμΆλλλ° shouldComponentUpdate()λ 무μνλ€.render()
Β λ΄μμλΒ forceUpdate()
λ₯Ό μ¬μ©νμ§ λ§μμΌ νλ©°, μ€μ§Β this.props
μΒ this.state
μ κ°λ§μ μ¬μ©ν΄μΌ νλ€.https://reactjs.org/docs/react-component.html
https://react.vlpt.us/basic/25-lifecycle.html
https://velog.io/@sukong/REACT-%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%9D%98-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0%EC%99%80-useEffect-Hook
https://medium.com/vingle-tech-blog/react-%EB%A0%8C%EB%8D%94%EB%A7%81-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-f255d6569849