00:00영상 개요: React.memo를 통해 리액트 컴포넌트의 렌더링 횟수를 최적화하는 방법을 다루는 영상입니다.
00:00*영상과 관련 없는 React.memo에 대한 배경지식들입니다. 만약 React.memo에 대해 익숙하지 않으시다면 해당 노트는 나중에 읽으시거나 skip해주세요.
배경지식 1:
React.memo는 prop이 바뀌지 않으면 컴포넌트를 re-rendering 시키지 않게 합니다.(re-rendering의 조건: state가 바뀌거나, 부모로부터 받는 prop이 바뀌거나 등)
배경지식 2:
React.memo()를 사용하기 가장 좋은 케이스는 함수형 컴퍼넌트가 같은 props로 자주 렌더링 될거라 예상될 때 입니다.
출처: https://ui.toast.com/weekly-pick/ko_20190731
배경지식 3:
렌더링 최적화 하지 않을 컴포넌트에 React.memo 를 사용하는것은, 불필요한 props 비교만 하는 것이기 때문에 실제로 렌더링을 방지할수있는 상황이 있는 경우에만 사용하시길바랍니다.
출처: https://react.vlpt.us/basic/19-React.memo.html
배경지식 4:
얕은 비교(shallow comparison)란 간단히 말하자면 객체, 배열, 함수와 같은 참조 타입들을 실제 내부 값까지 비교하지 않고 동일 참조인지(동일한 메모리 값을 사용하는지)를 비교하는 것을 뜻한다. 객체(object), 배열(array), 함수(function)와 같은 객체들은 같은 참조 값이 아니라면 새로운 값으로 판단하는 것이다.
해당 학습노트에서는 react router 버전6에서 redirect를 어떻게 구현하는지 소개합니다.
공식 문서: https://reactrouter.com/
00:50
react router 버전5에서 redirect를 구현하는 방법입니다.
*예상 시나리오: pathname이 '/redirect'인 page 접근 시 pathname '/about'인 page로 전환됨
*특정 pathname에 redirect 로직을 등록하는 이유는 가지각색이겠지만 그 중 대표적인 용도는 로그인 여부 검사입니다. 서비스를 이용하는 유저가 로그인을 했을 경우 특정 pathname에 접근하지 못하도록 사용하는 것이죠.