스터디/모던 리액트 Deep Dive(24.07-24.10)
3.3 : 리액트 훅 (훅의 규칙, 사용자 정의 훅, 고차 컴포넌트)
minseokiim
2024. 8. 27. 19:18
1. 훅의 규칙
- 최상위에서만 훅을 호출해야 함,
- 훅을 호출할 수 있는 것은 리액트 함수 컴포넌트 / 사용자 정의 훅 뿐.
훅에 대한 정보 저장은 index와 같은 키를 기반으로 구현(객체 기반 링크드 리스트 형태)
-> 순서에 큰 영향을 받음.
2. 사용자 정의 훅
서로 다른 컴포넌트 내부에서 같은 로직을 공유하고자 할 때 사용
리액트에서만 사용.
이름 : use~
값 반환 또는 부수효과 실행
✔️ 리액트에서 제공하는 훅으로만 공통 로직을 격리할 수 있는 경우 사용.
그 자체로 렌더링에 영향을 미치지 못하므로, 개발자가 원하는 방향으로 사용 가능(부수효과가 비교적 제한적)
3. 고차 컴포넌트(HOC : Higher Order Component)
컴포넌트 자체의 로직을 재사용 하기 위한 방법
리액트 아니더라도 js 환경에서 사용 가능.
최적화 및 중복 로직 관리 가능
이름 : with~
✔️ 함수 컴포넌트 반환값인 렌더링의 결과물에 영향을 미치는 공통로직에 사용
고차 컴포넌트는 컴포넌트 전체를 감쌀 수 있으므로, 사용자 정의 훅보다 더 큰 영향력.
부수효과를 최소화 해하고, 최소한으로 사용하는 것을 추천.
🫧 React.Memo
HOC의 대표적인 예시,
렌더링 전에 props를 비교해 이전과 같으면 렌더링 생략하고, 기억해둔 컴포넌트 반환
+ useMemo를 사용하는 경우에는 값을 반환하기 때문에, JSX 함수 방식이 아닌 {}을 이용한 할당식을 사용