Skip to main content

React의 StrictMode는 컴포넌트를 리렌더링하게 만드는건가?

create-react-app을 설치하면 React의 StrictMode가 있습니다.

이로 인해 콘솔을 보면 같은 콘솔이 2번씩 찍히게 됩니다.

그러면 컴포넌트가 2번 렌더링된다고 보일 수 있습니다.

React.StrictMode를 사용하는 것 자체는 컴포넌트 재랜더링을 트리거하지 않습니다.

React.StrictMode는 엄격 모드에서 컴포넌트를 실행시키기 때문에, 개발 중에 컴포넌트가 더 자주 재랜더링될 수 있습니다.

이는 엄격 모드가 추가적인 검사 및 경고를 도입하여,

더 많은 재랜더링이 트리거될 수 있기 때문입니다.

그러나 이러한 추가적인 재랜더링은 React.StrictMode 자체 때문이 아니라, 실행되는 검사 및 경고 때문입니다.

React.StrictMode가 추가적인 재렌더링을 하지는 않습니다.

그러나, 일부 상황에서는 추가적인 렌더링이 발생할 수 있습니다.

예를 들어, React.StrictMode는 자식 컴포넌트를 두 번 렌더링하여 componentDidCatch 수행 여부를 확인합니다.

이 경우, 두 번의 렌더링이 발생하므로 추가적인 렌더링이 발생할 수 있습니다.

또한, React.StrictMode는 setState나 context의 변경에 대한 경고를 표시하기 위해 추가적인 렌더링을 수행합니다.

이는 잘못된 사용법을 미리 방지하기 위해 수행되는 검사이며, 실제 애플리케이션에서 불필요한 렌더링을 유발하는 것은 아닙니다.

따라서, React.StrictMode를 사용하면 애플리케이션에서 잠재적인 문제를 미리 예방할 수 있습니다.

추가적인 렌더링이 발생할 수 있으나, 이는 애플리케이션 성능에 큰 영향을 미치지 않습니다.

요약하자면, React.StrictMode는 개발 중에 더 자주 컴포넌트를 재랜더링할 수 있지만, 이는 React.StrictMode 자체 때문이 아니라 React.StrictMode가 도입하는 추가 검사 및 경고 때문입니다.