Closed chhw130 closed 1 month ago
오... 지양되고 있다는 사실은 처음 알았어요..! 😮
저는 React.memo를 사용하고 공부하면서 React.memo가 고차 컴포넌트이고 고차 컴포넌트를 사용하면 컴포넌트의 불필요한 리랜더링을 방지한다는 사실을 알았습니다. 그래서 아무튼 저는HOC인 React.memo를 사용합니다!
지양되고 있다면 아마 React에서 함수형 컴포넌트를 지향하기 시작한 시점부터이지 않을까 싶습니다. 원래 기존에 HOC를 통해 해결해고자 했던 문제들을 더 간단하고 사이드 이펙트 없이 react hooks를 통해 해결해 버렸기 때문일거라고 생각합니다.
React.memo는 왜 살아남아있는지에 대한 부분은 제가 클로드한테 물어본 내용을 공유드릴게요!
저는 FO쪽에서는 훅을 통해 데이터 불러오는 로직을 관리하고, BO쪽에서 고차함수 방식을 사용해 관리를 합니다.
<구현 방식>
<요약> ⭐️ withPageContext를 export 하는 컴포넌트에 씌워주는 형태로 사용 ⭐️
<장점>
처음에는 훅이 아닌 고차함수 방식의 코드 베이스를 이해하기 어려워 한참 헤맸었는데, (추상화가 많이 되어있다고 느낌) 한 번 이해하고 사용하다보니 코드가 훨씬 깔끔해져서 다른 로직만 신경써도 되어 좋다고 느꼈습니다! 혼자 구현하라고 하면 아직 어려울 것 같긴 하네요 :)
hook만으로 구현할 수 없는 고차 컴포넌트만의 3가지 기능들을 정리한 아티클 하나 공유드립니다!
아티클 내용을 요약하면 다음과 같습니다~
https://www.developerway.com/posts/higher-order-components-in-react-hooks-era
🧐 Question
고차 컴포넌트를 자주 사용하시나요??
고차 컴포넌트는 이번 챕터에서 고차함수를 이용한 것처럼 훅이 생기기 이전까지 많이 사용을 했다고 하는데요. 그런데 훅의 도입 이후 고차 컴포넌트 사용을 지양하라는 말을 리액트 공식문서에서 찾아 볼 수 있었고, 다른 기술 블로그에서는 유용하게 사용되는 케이스도 찾아 볼 수 있었는데요.
얘기나눠보면 좋을 거 같습니다!
📝 Reference
고차 컴포넌트에 관한 화해 블로그