함수형 컴포넌트의 생명주기 훅 useEffect
- 클래스형 컴포넌트에는
componentDidMout
와 같은 생명주기 메소드들이 있습니다.
- 함수형 컴포넌트에서의 생명주기관련 훅은
useEffect
입니다.
useEffect
componentDidMout
useEffect(()=>{
console.log("마운트 됨!!")
},[])
componentDidUpdate 와 비슷
useEffect(()=>{
console.log("수정하고 다시 그려짐!!")
})
useEffect(()=>{
console.log("수정하고 다시 그려짐!!")
},[someState])
- componentDidUpdate 와 비슷하지만 다른점 하나는, Mount 되자마자 실행되는 점입니다.
componentWillUnmount
useEffect(()=>{
console.log("수정하고 다시 그려짐!!")
return(()=>{
console.log("여기서 나갈래요!!")
})
})
useEffect 의 실행 시점
- 생명주기 메소드, 훅 은 기본적으로 렌더 이후에 실행됩니다.
useEffect 사용시 주의 사항
- useEffect 안에서 setState 의 사용
-> useEffecrt 내에서 setState를 사용할때는 정말 필요한 경우가 아니라면 지양하시는게 가장 좋습니다.
- 컴포넌트가 마운트된 이후에 setState를 적용하게 되면,
- state가 변경되고,
- 변경된 state로 컴포넌트가 다시그려지게(=리렌더) 됩니다.
- 즉, useEffecrt 내에서 setState를 사용하게 되면 불필요한 리렌더나 무한루프를 일으키게 되고 성능면에서 비효율적이게 됩니다.