query-key-factory 라이브러리 도입에 관해서 #2
bbearcookie
started this conversation in
프론트
Replies: 1 comment
-
감사합니다 상훈님 ! 덕분에 query-key-factory 라이브러리를 공부하는 데에 많은 도움이 되었어요 : ) 여기에 링크할게요 https://github.com/orgs/team-moabam/discussions/4#discussion-5761684 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
query-key-factory 라이브러리를 이용해서 queryKey와 queryFn을 함께 관리해보는 것 어떨까요!?
이 라이브러리를 사용하면 queryKey와 queryFn의 매핑을 손쉽게 할 수 있어요!
라이브러리의 필요성
useQuery
를 사용할 때 직접queryKey
,queryFn
을 적어줄 경우에는 API에 변동 사항이 발생할 때 대응이 유연하지 못해서 잘 구조화 및 공통화 하는 것이 필요해요.queryKey
,queryFn
인 경우가 많은데, 커스텀을 위해서 훅을 만들기까지의 보일러 플레이트 과정이 번거로워요. (이름 짓기 -> 파일 생성 -> 제네릭 부여 -> useQuery 반환 ... 등등)장점
query-key-factory
라이브러리를 사용하면 대부분의queryKey
와queryFn
의 매핑은 손쉽게 만들고, 간혹 API 요청과 함께 긴밀하게 엮여있는 작업이 필요하다면 그 부분은 유연하게 커스텀 훅으로 만드는 방법도 가능해져요.사실 라이브러리를 사용하는 것 보다는 직접 유사한 구조로 구성해보면 어떨까 싶었는데..
몇 가지 삽질을 해본 결과 그냥 잘 나와있는 라이브러리를 이용하는게 더 편리할 것 같은 생각이 들었어요.
(타입 자동 추론을 유연하게 제공하면서 개발자가 객체의 인터페이스를 지키도록 만드는 게 생각보다 쉽지 않네요..)
사용한다면..
사용한다면 요런 느낌이 될 것 같아요!
매핑 정보 정의
@api/queries/posts.ts
@api/queries/comments.ts
@api/queries/index.ts
실제로 컴포넌트에서 사용하기
물론 실제로 프로젝트에 도입할 땐 타입이나 API 함수같은 부분도 다른 레이어에서 정리하게 되겠지만 예시로 코드를 작성해봤어요.
공통으로 관리해야 할 부분은 잘 관리하면서도 옵션에 해당하는 부분은 자유자재로 활용할 수 있다는 점을 확인할 수 있어요!
원래 서드파티였다가 이번 v5 버전에 정식으로 도입된
useSuspenseQuery
에도 호환이 잘 되네요.Beta Was this translation helpful? Give feedback.
All reactions