카테고리 없음
리액트, useEffect 첫 렌더링때 함수실행 막기
Damon11
2021. 4. 1. 17:36
useDidMountEffect.js
import React, { useEffect, useRef } from 'react';
const useDidMountEffect = (func, deps) => {
const didMount = useRef(false);
useEffect(() => {
if (didMount.current) func();
else didMount.current = true;
}, deps);
};
export default useDidMountEffect;
활용
import useDidMountEffect from 'components/useDidmountEffect.js';
useDidMountEffect(() => {
bgBlinking();
}, [siteState]);
useEffect 를 사용하는 이유 중 하나는,
특정 state가 변하는 경우에 함수를 호출하고자 할 때 사용한다.
하지만 첫 렌더링때도 state가 설정되는 것으로 보고 useEffect가 실행될 때가 있다.
커스텀 Hook을 만들어서 이 문제를 해결하였다
출처