개발을 하다가 컴포넌트가 렌더링될 때 2번 렌더링되는 현상을 목격했다. 사실 이전에 다른 플젝을 할 때도 렌더링이 두 번되는 경우를 종종 봤었는데(useEffect로 예약걸어둔 함수가 두 번 실행되는..) 이번에 이게 왜 이러지 라는 생각이 들어서 알아봤다.
일단 결론부터 말하자면, index.js에서 React.StrictMode가 쓰여서 그렇다. 때문에 StrictMode가 적용된 걸 주석처리해주면 2번 렌더링되는 현상을 해결할 수 있다.
https://ko.reactjs.org/docs/strict-mode.html#gatsby-focus-wrapper
이 놈은 개발모드에서만 활성화되는 녀석으로 UI적인 렌더링은 없고, 자식들에 대한 부가적인 검사와 경고를 활성화하는 것을 통해 개발에 도움을 주는 모드라고 한다.
위 공식문서에 쓰여있다시피, StrictMode가 적용돼있으면 두 번 렌더링을 하여 생명주기 메소드들과 관련된 쉽게 오류들을 찾을 수 있게끔 도와주는거라고 한다.
한마디로 두 번 렌더링되는 건 내가 오류없이 잘 코딩하고 있다면 문제될 얘기가 아니라는 뜻인 듯.
'WEB > REACT & NEXT' 카테고리의 다른 글
[React.js] Ref는 뭐고 왜 쓰는 걸까 (0) | 2022.07.27 |
---|---|
[React.js] 리액트에서 입력 폼 다루기(input태그들) - 1편 (0) | 2022.07.25 |
[React.js] useEffect 정리 (0) | 2022.07.13 |
[React.js] 좀 더 간편하게 의존성 주입 쓰는 법 (0) | 2022.07.08 |
[React.js] setter함수의 비동기적 동작과 setter함수에 콜백사용(함수형 업데이트) (0) | 2022.07.04 |