React와TanStackQuery의 만남 useSuspenseQuery

Tanstack Query v5로 업데이트 되면서 Suspense 기능이 정식으로 통합되었습니다. 이 기능은 React 18 에서 도입된 Suspense와 함께 작동하며, 비동기 데이터 로딩을 더욱 간편하고 직관적으로 처리할 수 있게 해주는데요.

useSuspenseQueryReact의 Suspense 기능과 TanStack Query를 결합한 매우 유용한 훅입니다. 이 훅을 사용하면 비동기 데이터 로딩과 상태 관리가 크게 간소화할수 있는데요. 다음은 useSuspenseQuery의 주요 특징입니다.

  1. Suspense 지원:

    1. React의 Suspense와 원활하게 통합되어, 로딩 중에는 가장 가까운 Suspense 경계로 예외를 던집니다.

    2. useSuspenseQuery내부 Promise를 React Suspense에게 throw 하는 형태로 구현되었습니다. 따라서 React는 throw된 useSuspenseQuery의 Promise를 감지하고, 가장 가까운 Suspense 경계에서 이를 ‘캐치’하여 화면에 렌더링 합니다.

  2. 간소화된 상태 처리:

    1. useQuery는 로딩 상태를 직접 처리해야 하지만, useSuspenseQuery는 로딩 중에는 가장 가까운 Suspense 경계 내에서 로딩 상태를 처리하기 때문에 별도의 로딩 상태를 명시적으로 처리할 필요가 없습니다.

    2. 에러 상태역시 별도로 처리할 필요 없이 가장 가까운 Error Boundary로 전달되어 자동으로 처리됩니다.

    3. data 반환 값의 status가 언제나 success를 반환하므로 데이터 존재 여부를 위한 옵셔널 체이닝이 필요 없습니다. 이전 useQuery(V4) 는 처음 반환값이 ‘undefined’ 를 반환하고 이후에 ‘data’를 반환했는데요. useSuspenseQuery는 suspense 옵션이 기본적으로 true이고, status가 언제나 success인 data 값을 반환합니다.

  3. 주의사항:

    1. Suspense와 Error Boundary를 상위 컴포넌트에 반드시 감싸서 사용해야 합니다. Suspense는 로딩 중의 UI를 처리하고, Error Boundary는 에러 발생 시 대체 UI를 렌더링합니다.


useQuery를 적극적으로 사용하셨다면 이제 useSuspenseQuery를 사용해보세요. useSuspenseQuery는 비동기 데이터를 더욱 간편하게 처리할수 있고, React와도 잘 어우러져 작동합니다. 코드가 간결해지고 유지보수도 더욱 쉬워집니다. 개발자는 데이터 상태 관리에 시간을 쏟는 대신, 비즈니스 로직과 UI 구현에 더 집중할 수 있습니다.


https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery

useSuspenseQuery | TanStack Query React Docs

tanstack.com

useSuspenseQuery | TanStack Query React Docs

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 8월 30일 오전 12:21

 • 

저장 22조회 2,179

댓글 0

    함께 읽은 게시물

    도메인발견여정

    ... 더 보기

     • 

    저장 1 • 조회 737


    🕊️ 스프링 부트 인터뷰 질문 - 심화편

    📌 스프링 부트가 제공하는 기본 어노테이션에는 어떤 것이 있나요? - @SpringBootApplication - @Controller - @RestController - @Service - @Repository - @Autowired 📌 스프링 부트 의존성 관리란 무엇입니까? 📌 스프링 부트에서 웹이 아닌 애플리케이션을 만들 수 있을까요? 📌 스프링 부트의 내장 톰캣 서버의 포트를 바꿀 수 있을까요? 📌 스프링 부트 톰캣 서버의 기본 포트는 몇번인가요? 📌 내장 톰캣 서버를 교체할 수 있나요? 📌 스프링 부트 ... 더 보기

    Spring Boot Interview Questions Advanced.

    Medium

    Spring Boot Interview Questions Advanced.

     • 

    저장 98 • 조회 3,655


    👋 굿바이 Styled Components 🥹

    S

    ... 더 보기

    Thank you - styled-components

    opencollective.com

    Thank you - styled-components

     • 

    댓글 1 • 저장 41 • 조회 4,547


    🕊️ Java의 ExecutorService 스레드 풀 정복하기

    ... 더 보기

    Java의 ExecutorService 스레드 풀 정복하기

    덕토피아

    Java의 ExecutorService 스레드 풀 정복하기

     • 

    저장 29 • 조회 3,728


    다른 회사를 먼저 알아보지 않고 퇴사하면

    첫 회사에서 5년 정도 보낸 후 대기업이 가보고 싶다는 생각이 들었습니다.

    ... 더 보기

     • 

    저장 10 • 조회 2,532


    Spring 면접 전 살펴보기 위한 Q&A 35가지 (2024년 ver)

    ... 더 보기

    Top Spring Framework Interview Questions | Baeldung

    Baeldung

    Top Spring Framework Interview Questions | Baeldung

     • 

    댓글 7 • 저장 1,250 • 조회 21,005