쓸때 없는 리랜더링 방지를 위해 사용되고
이 둘은 최적활를 위해 사용된다.
값을 캐싱할때 사용된다.
예를 들어 인라인으로
<div style={{margin : 10}}/>
이렇게 할경우 객체는 주소값이 다 다르기때문에 리액트는 버츄얼돔으로 확인하면서 결국 재 랜더링시킨다
이걸
const asd = useMemo(()=>({
margin : 10
}))
이렇게 style 에 대한 값을 캐싱함으로 리랜더링 을 방지한다
함수를 캐싱할때 쓴다
보통 그냥 프롭스로 함수를 보낼때 계속 쓸대 없이 또 보내는걸 방지하기 위해
const asd = useCallbakc((e)=>{
setId(e.target.value
})
이렇게 이용해 쓸때 없는 메모리 낭비를 방지한다