useEffect 란?
component가 마운트 / 언마운트 / 업데이트될 때,
할 작업을 선택하도록 하는 Hook함수
(외부 API를 요청하거나, 반복작업 / 작업예약 등에 쓰임)
기존의 class형에서는 세 가지의 각 상태들을 따로 관리해야 하는 불편함이 있었는데, useEffect를 사용하면 한 번에 관리할 수 있어 편리하다!
세 가지의 상태들을 기존의 메서드와 매칭하여 좀 더 알아보자면,
mount
: component가 처음 화면에서 보여질 때 (새로고침 시) (componentDidMount 메서드)
unmount
: component가 화면에서 사라질 때
(componentWillUnmount 메서드)
update
: 특정 props가 바뀌어 component가 업데이트될 때
(componentWillUpdate 메서드)
useEffect 사용하기
기본 사용법
useEffect(함수, [의존값 deps]);
useEffect(() => {
mount 시 실행할 함수;
return () => {unmount 시 실행할 내용}
}, [deps값]);
1) 먼저 mount 시 실행할 함수를 작성한다.
2) 반환 값에는 unmount 시 실행할 내용을 작성한다. (cleanup)
3) deps값에 특정 값을 넣으면, 해당 값이 업데이트될 때마다 useEffect에 작성한 함수가 재실행된다.
*빈배열로라도 두어야 useEffect에 작성한 함수가 처음 mount될 때만 실행됨(생략하면, 리렌더링 될 때마다 계속 함수를 불러오게 되니까)
*cleanup 함수
해당 effect가 더 이상 실행할 필요가 없을 때 청소하는 용도.
여기서 더 이상 실행할 필요가 없는 경우는 다음 두 가지이다.
1) dependancy(두 번째 인자로 넘기는 배열)가 바뀌어서 effect가 달라져야할 때 (이전 effect 청소)
2) 해당 component가 unmount 될 때
'이력서 질문' 카테고리의 다른 글
Async/Await와 Promise의 차이 (0) | 2022.06.08 |
---|---|
var, let, const의 차이 (0) | 2022.06.08 |
useRef (0) | 2022.06.08 |
버츄얼 돔과 리얼 돔의 차이 (0) | 2022.06.08 |
HTTP와 HTTPS의 차이 (0) | 2022.06.08 |