Skip to content

Commit 301e1f9

Browse files
committed
refactor: change name useDidMountEffect to useDidUpdateEffect (#99)
1 parent ed824ca commit 301e1f9

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

docs/hooks/useDidMountEffect.md docs/hooks/useDidUpdateEffect.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# `[Hook] useDidMountEffect`
1+
# `[Hook] useDidUpdateEffect`
22

33
## `description`
44

5-
useDidMountEffect는 컴포넌트가 마운트 된 후에만 effect를 실행합니다.
5+
useDidUpdateEffect는 컴포넌트가 마운트 된 후에만 effect를 실행합니다.
66
즉 마운트 시에는 실행되지 않고, deps가 변경될 때에만 실행됩니다.
77

88
## `type`
@@ -18,12 +18,12 @@ interface Props {
1818

1919
```tsx
2020
import { useState } from 'react';
21-
import { useDidMountEffect } from 'wap-ui';
21+
import { useDidUpdateEffect } from 'wap-ui';
2222

2323
const App = () => {
2424
const [count, setCount] = useState<number>(0);
2525

26-
useDidMountEffect(() => {
26+
useDidUpdateEffect(() => {
2727
console.log('count changed');
2828
}, [count]);
2929

packages/react/src/components/Accordion/AccordionItem/AccordionItem.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useState, useEffect, useRef } from 'react';
2-
import useDidMountEffect from '../../../hooks/useDidMountEffect';
2+
import useDidUpdateEffect from '../../../hooks/useDidUpdateEffect';
33
import { useAccordionContext } from '../AccordionContext';
44
import * as S from './AccordionItem.styles';
55

@@ -39,7 +39,7 @@ export const AccordionItem = ({
3939
}, [values, index]);
4040

4141
/** 첫 마운트 이후부터 visible이 변경할 때 작동한다. */
42-
useDidMountEffect(() => {
42+
useDidUpdateEffect(() => {
4343
if (parentRef.current === null || childRef.current === null) return;
4444

4545
if (!visible) {

packages/react/src/hooks/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export { default as useDidMountEffect } from './useDidMountEffect';
1+
export { default as useDidUpdateEffect } from './useDidUpdateEffect';
22
export { default as useDisclosure } from './useDisclosure';
33
export { default as useThrottle } from './useThrottle';
44
export { default as useDebounce } from './useDebounce';

packages/react/src/hooks/useDidMountEffect.ts packages/react/src/hooks/useDidUpdateEffect.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,31 @@ import React, { useRef, useEffect } from 'react';
22

33
/**
44
* @description
5-
* useDidMountEffect는 컴포넌트가 마운트 된 후에만 effect를 실행합니다.
5+
* useDidUpdateEffect는 컴포넌트가 마운트 된 후에만 effect를 실행합니다.
66
* 즉 마운트 시에는 실행되지 않고, deps가 변경될 때에만 실행됩니다.
77
*
88
* @example
99
* ```tsx
1010
* const [count, setCount] = useState<number>(0);
11-
* useDidMountEffect(() => {
11+
* useDidUpdateEffect(() => {
1212
* console.log('count changed');
1313
* }, [count]);
1414
*
1515
* <button onClick={() => setCount(count + 1)}>count + 1</button>
1616
* ```
1717
*/
18-
const useDidMountEffect = (
19-
effect: React.EffectCallback,
18+
19+
const useDidUpdateEffect = (
20+
callback: () => void,
2021
deps: React.DependencyList,
2122
) => {
2223
const didMount = useRef(false);
2324

2425
useEffect(() => {
25-
if (didMount.current) effect();
26+
if (didMount.current) callback();
2627
else didMount.current = true;
27-
}, [deps, effect]);
28+
// eslint-disable-next-line react-hooks/exhaustive-deps
29+
}, deps);
2830
};
2931

30-
export default useDidMountEffect;
32+
export default useDidUpdateEffect;

0 commit comments

Comments
 (0)