React Hooks 5 - memoization

2024. 8. 19. 19:04·프론트엔드/React

 

 

memoization

 

1. 리렌더링의 발생 조건

- state가 변경, props가 변경, 부모 컴포넌트가 리렌더링되는 경우

 

2. 최적화

memo(React.memo) : 컴포넌트를 캐싱

useCallback : 함수를 캐싱

useMemo : 값을 캐싱

 

 

1. memo 사용 방법

// 각각의 파일에서 export를 시킴

export default React.memo(Box1);
export default React.memo(Box2);
export default React.memo(Box3);

 

이렇게 하는 경우 렌더링 되는 파일만 렌더링이되고 그 외 파일들은 리렌더링 되지 않음

 

 

 

2. useCallback 사용 방법

memo는 컴포넌트를 메모이제이션 했다면, useCallback은 인자로 들어오는 함수 자체를 기억(메모이제이션)

// 변경 전
const initCount = () => {
  setCount(0);
};

// 변경 후
const initCount = useCallback(() => {
  setCount(0);
}, []);

 

 

 

3. useMemo 사용 방법

맨 처음 값을 반환할 때 그 값을 메모리에 저장 > 필요할 때 마다 함수가 아닌 저장한 값을 꺼내서 사용 > 캐싱을 한다 라고 표현

 

// 변경 전
const value = 반환할_함수();

// 변경 후
const value = useMemo(()=> {
	return 반환할_함수()
}, [dependencyArray]);

 

 

주의 사항

어찌보면 사용할때 마다 별도의 메모리를 잡아먹게 되기 때문에 성능이 악화될 수 있음

 

 

 

'프론트엔드 > React' 카테고리의 다른 글

카카오맵에 그린 도형 캡처하기 (html2canvas, canvas API)  (0) 2024.09.23
개인프로젝트 - 포켓몬 도감  (2) 2024.08.26
React Hooks 4 - useContext  (0) 2024.08.19
React Hooks 3 - useRef  (0) 2024.08.19
React Hooks 2 - useEffect  (0) 2024.08.19
'프론트엔드/React' 카테고리의 다른 글
  • 카카오맵에 그린 도형 캡처하기 (html2canvas, canvas API)
  • 개인프로젝트 - 포켓몬 도감
  • React Hooks 4 - useContext
  • React Hooks 3 - useRef
장쫑이이
장쫑이이
  • 장쫑이이
    JongHoy
    장쫑이이
  • 전체
    오늘
    어제
    • 코딩공부하기 (41)
      • 프론트엔드 (41)
        • Next.js (12)
        • React (16)
        • TypeScript (2)
        • 상태관리 (1)
        • HTML&CSS (1)
        • 기타 (9)
      • 과거 공부 내용 (0)
        • JSCODE 그룹스터디 (0)
        • JS 객체 지향 프로그래밍 (0)
        • 리엑트 (0)
        • 제로초 - 웹 게임을 만들며 배우는 리엑트 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    destructuring
    Filter
    행렬의 덧셈
    slice
    토글
    속성 추가
    setAttribute
    git
    While문
    github
    필터링
    map
    팀프로젝트
    LastIndexOf
    styled-components
    유클리드 호제법
    useState
    reduce
    isNan
    이중 for문
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
장쫑이이
React Hooks 5 - memoization
상단으로

티스토리툴바