Home React.memo를 사용한 컴포넌트 리렌더링 방지
Post
취소

React.memo를 사용한 컴포넌트 리렌더링 방지

🔖 React.memo 를 사용한 컴포넌트 리렌더링 방지

📌 배운 내용 및 기억하고 싶은 내용

  • React.memo : 컴포넌트의 props 가 바뀌지 않았다면, 리렌더링을 방지하여 컴포넌트의 리렌더링 성능 최적화하는 함수

    • 컴포넌트에서 리렌더링이 필요한 상황에서만 리렌더링을 하도록 설정가능

    • 1
      
      export default React.memo(컴포넌트명j);
      
    • 최적화 할려면 함수형 업데이트를 사용해야한다.

    • 함수형 업데이트는 setState에 함수를 전달하는 것이다.

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
      // 함수형 업데이트 적용전
      const [value, setValue] = useState(0);
            
      setValue(value + 1);
      setValue(value + 1);
      setValue(value + 1);
            
      // Expected value: 3
      // Result value: 1
            
      // 함수형 업데이트 적용후
      const [value, setValue] = useState(0);
            
      setValue(prev => prev + 1);
      setValue(prev => prev + 1);
      setValue(prev => prev + 1);
            
      // Expected value: 3
      // Result value: 3
      
    • 리액트 개발을 할때, useCallback, useMemo, React.memo 는 컴포넌트의 성능을 실제로 개선할수있는 상황에서만 해야한다.

    • 오직 성능최적화를 위하여 사용된다.

    • 렌더링을 방지하기 위해 사용하면 버그가 발생 할 수 있다.
This post is licensed under CC BY 4.0 by the author.