본문 바로가기
react

useUpdateEffect

by 왜 안되지 2023. 11. 3.

react 의 useEffect 는 처음 마운트할때와 의존성 배열에 있는 값이 바뀔 때 실행된다. 

 

useUpdateEffect 는 react-use 같은 라이브러리에서 커스텀 훅으로 제공되기도 하지만 
간단하게 프로젝트에 정의해서 사용할 수도 있다.

import { useEffect, useRef } from 'react'

function useUpdateEffect(callback: () => void, deps: any[]) {
    const ref = useRef(false)

    useEffect(() => {
        if (ref.current) {
            callback()
        } else {
            ref.current = true
        }
        // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [...deps])
}

export default useUpdateEffect

 

useUpdateEffect 는 처음 마운트시에 useEffect 가 실행되지않고 의존성 배열에 의해서만 리렌더가 필요할 때 사용할 수 있는 커스텀 훅이다.

 

ref 가 첫 마운트시에는 false 이기 때문에 콜백이 실행되지 않고 이후 deps 가 변경이 일어날 때만 useEffect 가 실행 되게 된다.

 

 

댓글