Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FE] 비동기 상태관리 훅을 react-query로 전환 #575

Open
greenblues1190 opened this issue Oct 28, 2022 · 1 comment
Open

[FE] 비동기 상태관리 훅을 react-query로 전환 #575

greenblues1190 opened this issue Oct 28, 2022 · 1 comment
Assignees
Labels
🍚 frontend Anything related to front-end 🛠 refactor Refactor code
Projects

Comments

@greenblues1190
Copy link
Collaborator

요구사항

  • useQuery, useMutation, queryClient를 react-query로 전환
  • 관련 타입을 react-query가 제공하는 타입으로 전환
  • 전체 동작 테스트

기한

22.10.30

@greenblues1190 greenblues1190 added 🍚 frontend Anything related to front-end 🛠 refactor Refactor code labels Oct 28, 2022
@greenblues1190 greenblues1190 self-assigned this Oct 28, 2022
@greenblues1190 greenblues1190 added this to To do in Sprint 7 via automation Oct 28, 2022
@greenblues1190
Copy link
Collaborator Author

useQuery가 반환한 객체의 refetch와 QueryClient의 invalidateQueries 메서드 비교

refetch와 invalidateQueries 모두 쿼리를 재요청하는 메서드이다. 하지만 refetch는 실행 시 항상 재요청하는 반면, invalidateQueries는 쿼리를 stale로 마크하고 옵저버가 마운트될 때 재요청한다.

그 이유는 QueryClient가 상태 변경 시 컴포넌트를 업데이트하는 방식에 있다. react-query의 내부 구현을 살펴본 결과, 내부적으로 옵저버 패턴을 사용한다는 것을 알 수 있었다. 컴포넌트는 마운트될 때 참조한 쿼리들을 구독하며 언마운트 시 구독을 해제하는 방식으로 . 본 이슈에서도 대부분의 경우 쿼리가 참조되는 컴포넌트가 마운트되었을 때만 재요청하는 것이 효율적이기 떄문에 invalidateQueries를 사용하기로 결정했다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🍚 frontend Anything related to front-end 🛠 refactor Refactor code
Projects
Development

No branches or pull requests

1 participant