@@ -652,17 +652,53 @@ const { data: friends } = useQuery(["friends"], fetchFriends);
652652- 이러한 특징은 쿼리 처리의 ` 동시성` 을 극대화 시킨다.
653653
654654` ` ` jsx
655+ // v3
655656const queryResults = useQueries (
656657 heroIds .map ((id ) => ({
657658 queryKey: [" super-hero" , id],
658659 queryFn : () => fetchSuperHero (id),
659660 }))
660661);
662+ /*
663+ const queryResults = useQueries(
664+ {
665+ queryKey: ['super-hero', 1],
666+ queryFn: () => fetchSuperHero(1)
667+ },
668+ {
669+ queryKey: ['super-hero', 2],
670+ queryFn: () => fetchSuperHero(2)
671+ },
672+ // ...
673+ );
674+ */
661675` ` `
662676
663677- 하지만, 쿼리 여러 개를 동시에 수행해야 하는데, 렌더링이 거듭되는 사이사이에 계속 쿼리가 수행되어야 한다면 쿼리를 수행하는 로직이 hook 규칙에 어긋날 수도 있다. 이럴 때는 ` useQueries` 를 사용한다.
664678
665679<br />
680+
681+ - useQueries가 v4부터 쿼리를 넘기는 방식이 변경됐다. 차이점으로는 queries프로퍼티를 가진 객체를 넘겨줘야 한다.
682+
683+ ` ` ` jsx
684+ // v4
685+ const queryResults = useQueries ({
686+ queries: [
687+ {
688+ queryKey: [" super-hero" , 1 ],
689+ queryFn : () => fetchSuperHero (1 ),
690+ staleTime: Infinity , // 다음과 같이 option 추가 가능
691+ },
692+ {
693+ queryKey: [" super-hero" , 2 ],
694+ queryFn : () => fetchSuperHero (2 ),
695+ staleTime: 0 ,
696+ },
697+ // ...
698+ ],
699+ });
700+ ` ` `
701+
666702<br />
667703
668704## Dependent Queries
0 commit comments