<aside> ⚠️ useEffect를 남용하면 side Effect가 걷잡을 수 없이 커져서 유지보수가 어렵거나 새로운 기능을 추가할 때 버그가 발생할 확률도 높아지게 되므로 최소한으로 써야한다.
</aside>
import { useState } from 'react';
interface ChildProps {
num: number;
}
const addFunc = (num: number) => num + 1;
const Child: React.FC<ChildProps> = ({ num }) => {
const value = addFunc(num);
return <div>{value}</div>;
};
const App = () => {
const [count, setCount] = useState(0);
return (
<div>
<Child num={count} />
<button onClick={() => setCount((count) => count + 1)}>Click me!</button>
</div>
);
};
export default App;
import { useState } from 'react';
interface ChildProps {
num: number;
}
const Child: React.FC<ChildProps> = ({ num }) => {
const [extra] = useState('ㅋㅋㅋ');
const [bonusNum, setBonusNum] = useState(0);
const [prevNum, setPrevNum] = useState(num);
if (num !== prevNum) {
setPrevNum(num);
setBonusNum(num);
}
return (
<div>
<div>num: {bonusNum}</div>
<div>{extra}</div>
</div>
);
};
const App = () => {
const [count, setCount] = useState(0);
return (
<div>
<Child num={count} />
<button onClick={() => setCount((count) => count + 1)}>Click me!</button>
</div>
);
};
export default App;