5. usehooks-ts
1. usehooks-ts
모든 Hook에 대한 코드가 웹 사이트에 직접 노출됨
참/거짓을 다룰 땐 toggle 같이 의도가 명확한 함수를 사용하는 것을 권장
예시
의존성 배열을 빈 배열로 넣어서 한 번만 실행하는 Effect를 잡아줄 때가 많은데, useEffectOnce를 사용하면 한 번만 실행하는 것이 명확해짐 표현력의 증대
예시
정말 간단히 쓸 때 좋음
예시
데이터가 로딩 중일 때는 문제가 될 수 있으므로 예외 처리
기타 라이브러리
몇 가지 기능이 살짝 더 있는 useFetch 라이브러리
조금 더 복잡해도 괜찮다면, 캐시 이슈를 고려한 좋은 대안
TanStack Query (React Query)
React에서 setInterval 등을 쓸 때는 주의해야 할 부분이 있어서 Custom Hook을 만들어서 해결해야 함
모든 종류의 이벤트를 확인 가능 💡 특히 dispatchEvent로 전달되는 커스텀 이벤트에 반응하기 좋음
useClickAnyWhere()에서의 예시
localStorage와 JSON으로 객체 영속화 이벤트를 통해(dispatchEvent + useEventListener) 다른 컴포넌트와 동기화하는 게 매우 중요한 특징
OS에서 설정된 다크모드 여부(초깃값)를 알 수 있음
2. SWR
SWR 명칭은 HTTP RFC 5861(opens in a new tab)에 의해 알려진 HTTP 캐시 무효 전략인 stale-while-revalidate에서 유래 SWR은 먼저 캐시(스태일)로부터 데이터를 반환한 후, fetch 요청(재검증)을 하고, 최종적으로 최신화된 데이터를 가져오는 전략
SWR을 사용하면 컴포넌트는 지속적이며 자동으로 데이터 업데이트 스트림을 받게 됨 UI는 항상 빠르고 반응적
장점
단 한 줄의 코드로 프로젝트 내의 데이터 가져오기 로직을 단순화할 수 있으며, 다음의 기능들을 바로 사용할 수 있음
빠르고, 가볍고, 재사용 가능한 데이터 가져오기
내장된 캐시 및 요청 중복 제거
실시간 경험
전송 및 프로토콜에 구애받지 않음
SSR / ISR / SSG support
TypeScript 준비
React Native
3. React Query
TS/JS, React, Solid, Vue 및 Svelte를 위한 강력한 비동기 상태 관리
세분화된 상태 관리, 수동 다시 가져오기 및 끝없는 비동기식 스파게티 코드 그릇을 버리십시오. TanStack Query는 개발자와 사용자 경험 모두를 직접적으로 개선하는 선언적이고 항상 최신 상태의 자동 관리 쿼리 및 변형을 제공합니다.
장점
1. 선언적 및 자동
React Query에 데이터를 가져올 위치와 필요한 최신 정보를 알려주면 나머지는 자동으로 처리 zero-configuration으로 즉시 캐싱, 백그라운드 업데이트 및 stale 데이터를 처리
2. 단순하고 친숙함
promise, async/await 작업 방법을 알고 있다면 React Query를 사용할 수 있음 관리해야 할 전역 상태, 리듀서, 정규화 시스템 또는 이해할 무거운 구성이 없음 데이터를 해결하는(또는 오류를 발생시키는) 함수를 전달하기만 하면 됨
3. 확장 가능
React Query는 모든 사용 사례에 맞는 노브와 옵션을 사용하여 쿼리의 각 옵저버 인스턴스까지 구성할 수 있음 전용 devtools, 무한 로딩 API 및 데이터를 쉽게 업데이트할 수 있는 일급 mutation tool 제공
Last updated