리액트의 최적화 기능 중의 하나의 useMemo에 대해서 알아보자.
리액트의 장점은 실시간 렌더링이라고도 할 수 있지만, 불필요한 렌더링을 하게되는 경우
많은 리소스에 연산을 하게되어 성능 저하의 원인이 된다.
불필요한 리렌더링을 방지하기위하 목적으로 useMemo 를 사용한다.
const value = useMemo(callback, arrays?];
호출된 useMemo 는 의존성배열인 arrays의 값이 변할 때만 리렌더링되며, 값이 변하지 않는 한 재호출되지 않는다.
아래 사용 예시를 보자
const analyzeTodo = useMemo(() => {
console.log('todo가 변경될 때 마다 analyzeTodo() 함수를 호출합니다.');
const totalCount = todo.length;
const doneCount = todo.filter((it) => it.isDone).length;
const notDoneCount = totalCount - doneCount;
return { totalCount, doneCount, notDoneCount };
}, [todo]);
const { totalCount, doneCount, notDoneCount } = analyzeTodo;
useMemo를 사용하기전에는 입력 이벤트를 받을 때마다 리렌더링이 되었으나 useMemo로 todo 의 값이 변경될 때만 리렌더링 되도록 수정한 예시이다.
'프로그래밍 > react' 카테고리의 다른 글
redux 와 MobX 의 공통점 차이점과 특징 정리 (0) | 2024.03.08 |
---|---|
1-12) [리액트 기초] useCallback (0) | 2024.02.07 |
1-11) [리액트 기초] React.memo를 이용한 최적화 (1) | 2024.02.06 |
1-9) [리액트 기초] useEffect 사용법 (0) | 2024.01.30 |
1-8) [리액트 기초] Ref 사용방법 (0) | 2024.01.29 |
1-7) [리액트 기초] 여러 개의 입력 상태 관리하기 (1) | 2024.01.29 |
1-6) [리액트 기초] 컴포넌트 이벤트 호출 (1) | 2024.01.24 |
1-5) [리액트 기초] 컴포넌트 값 전달하기 (0) | 2024.01.24 |
댓글