- 간단한 작업을 할 때 시간이 오래 걸리는 작업을 함께 수행하는 것은 비효율적
- 연산을 통해 나온 값을 메모리상에 저장해두고, 해당 값이 변경되지 않을 때는 다시 연산하지 않도록 함
- 연산으로 얻은 값 자체를 메모라이즈 하기 위해 사용되는 hook이 useMemo
const hardCalculator = (number) => {
console.log('어려운 계산');
for(let i = 0 ; i < 99999; i++){
}
return number + 10000;
};
const easyCalculator = (number) => {
console.log('쉬운 계산');
return number + 1;
}
const { useState, useMemo } = React;
function App(){
const [hardNumber, setHardNumber ] = useState(1);
const [easyNumber, setEasyNumber ] = useState(1);
const hardNum = useMemo(
() => { return hardCalculator(hardNumber)},
[hardNumber]
);
const easyNum = useMemo(
() => { return easyCalculator(easyNumber)},
[easyNumber]
);
return(
<>
<h3>어려운 계산기</h3>
<input type="number" value = {hardNumber} onChange = { (e) => setHardNumber(parseInt(e.target.value))}/>
<span> + 10000 = {hardNum} </span>
<h3>쉬운 계산기</h3>
<input type="number" value = {easyNumber} onChange = { (e) => setEasyNumber(parseInt(e.target.value))}/>
<span> + 1 = {easyNum} </span>
</>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<App/>);