Class형 react에서는 react의 생애주기를 관리하기 위해 componentDidMount(첫 렌더링에 실행시킬 함수), componentDidUpdate(지정한 변수에 변화가 생겼을 때 실행시킬 함수), componentWillUnmount(컴포넌트가 종료되기 전에 실행시킬 함수)을 각각 사용한다.
React hooks에선 useEffect라는 API로 한번에 묶어서 실행이 가능하다.(조건에 따라 실행시킬 함수가 많다면 각각의 useEffect를 사용하는 것이 편하다.)
기본 문법
useEffect(() => {
console.log('hi') // componentDidMount될 때 실행시키고자 하는 함수
}, []); // 빈 배열일 경우 componentDidMount만 실행
useEffect(() => {
console.log('hi') // componentDidUpdate될 때 실행시키고자 하는 함수
}, [email, nickname]); //componentDidUpdate될 때 실행되는 조건(값이 바뀌거나 값을 만족하거나)
useEffect(() => {
console.log('hi')
return ()=>{ // 이 부분부터 componentWillUnmount 될 때 실행시키고자 하는 함수 작성
console.log('bye'}
}, [email, nickname]);
import {useEffect} from 'react';
const mounted = useRef(false);
useEffect(() => {
if (!mounted.current) {
mounted.current = true;
} else 'didupdate 시 실행시키고 싶은 함수';
}, ['바뀌는 값']);