UNPKG

@modern-kit/react

Version:
1 lines 1.39 kB
{"version":3,"file":"index.cjs","sources":["../../../src/hooks/useDidUpdateEffect/index.ts"],"sourcesContent":["import {\n useEffect,\n useRef,\n type DependencyList,\n type EffectCallback,\n} from 'react';\n\n/**\n * @description 최초 마운트 시에는 실행되지 않고, 의존성 배열(`deps`)의 값이 업데이트되었을 때만 effect를 실행시키는 커스텀 훅입니다.\n *\n * @param {EffectCallback} effectCallback - 실행할 함수입니다.\n * @param {DependencyList} deps - effect를 다시 실행 할 의존성 배열입니다.\n *\n * @returns {void} void\n *\n * @example\n * useDidUpdateEffect(() => {\n * console.log('deps가 변경되었습니다.');\n * }, deps);\n */\nexport function useDidUpdateEffect(\n effectCallback: EffectCallback,\n deps: DependencyList\n): void {\n const isFirstRender = useRef(true);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n\n return effectCallback();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAoBO,SAAS,kBAAA,CACd,gBACA,IAAA,EACM;AACN,EAAA,MAAM,aAAA,GAAgBA,aAAO,IAAI,CAAA;AAEjC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAc,OAAA,EAAS;AACzB,MAAA,aAAA,CAAc,OAAA,GAAU,KAAA;AACxB,MAAA;AAAA,IACF;AAEA,IAAA,OAAO,cAAA,EAAe;AAAA,EAExB,GAAG,IAAI,CAAA;AACT;;;;"}