- 필요시에 원하는 때에 렌더링 시키고 렌더링 최적화를 할 수 있음.
useEffect(() => { //처음으로 데이터를 받아올때 유용하게 사용할 수 있다
fetch(`data/test.json`)
.then(res => res.json())
.then(data => {
console.log("데이터 받기 성공");
setProducts(data);
})
return () => {
console.log("청소 됨") //useEffect가 새로 호출될때마다 호출됨
}
}, []); //두번째 배열 빈배열로 넣으면 딱 한번만 호출함
const UseMemo = useMemo(() => doSomething(), []);
// useEffect처럼 딱 한번만 실행하거나 어떤 특정값이 변경될때마다 실행 시킬 수 있음
// 캐싱하여 성능향상 할때 주로 사용 (메모기능)
// useCallback()과도 유사함
const Memo = memo(({prop1}) => {
//단순 UI 컴포넌트의 리렌더링 방지
//props가 변경되면 리렌더링된다.
})