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

 • 

저장 23조회 2,203

댓글 0

    함께 읽은 게시물

    무너지고 있는 프론트엔드, 백엔드 직군의 경계에 대한 고찰

    AI 기술이 우리 일상과 산업 전반에 스며들면서 소프트웨어 개발 환경 역시 큰 변화의 물결을 맞이하고 있다. 특히 코딩을 돕는 AI 에이전트의 등장은 개발 생산성에 대한 큰 변화를 만들고 있다. 나 역시 이러한 변화를 체감하며, 나에게 익숙한 소프트웨어 개발의 대표적인 두 축인 프론트엔드와 백엔드 영역에서 AI 기술이 미치는 영향과 그로 인해 변화하는 소프트웨어 엔지니어의 역할에 대해 개인적인 생각을 정리해 본다.

    ... 더 보기

     • 

    저장 32 • 조회 3,958


    개발자의 장애 공유 문화

    ... 더 보기

    개발자의 장애 공유 문화

    K리그 프로그래머

    개발자의 장애 공유 문화

     • 

    저장 14 • 조회 3,436


    🎯 유튜브에 100번째 코딩 테스트 문제 풀이 영상을 올렸습니다!

    ... 더 보기

    달레의 코딩 테스트

    YouTube

    달레의 코딩 테스트

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 128 • 조회 3,506



    데이터 작업용 Cursor 에디터 - Nao

    d

    ... 더 보기

    Nao - 데이터를 위한 Cursor | GeekNews

    GeekNews

    Nao - 데이터를 위한 Cursor | GeekNews