wam
w__am 개발노트
wam
  • 분류 전체보기 (165)
    • CS 지식 (10)
      • 자료구조 (0)
      • 알고리즘 (0)
      • 컴퓨터 구조 (0)
      • 운영체제 (0)
      • 네트워크 (7)
      • 데이터베이스 (0)
      • 디자인 패턴 (3)
    • Frontend (131)
      • Three.js (64)
      • NPM (1)
      • Nest.js (19)
      • React (10)
      • Apollo (7)
      • TypeScript (2)
      • JavaScript (12)
      • HTML, CSS (1)
      • Jest (3)
      • E2E (5)
      • Cypress (7)
    • Database (12)
      • TypeORM (12)
    • IT 지식 (8)
      • 클라우드 서비스 (3)
      • 네트워크 (1)
      • 데이터 포맷 (2)
      • 기타 (2)
    • IT Book (2)
    • 유용한 사이트 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 🐱 Github

인기 글

태그

  • 함수 리터럴
  • Decorators
  • gridhelper
  • threejs 개발 할 때 도움을 줄 수 있는 유틸리티
  • 함수 선언문
  • e.preventdefault()
  • getdelta()
  • API
  • 스코프
  • joi 에러
  • react 성능 최적화
  • 원형적인 움직임
  • 함수의 범위
  • axeshelper
  • reactive variables
  • 오프-프레미스(off-premise) 방식
  • getelapsedtime()
  • 함수 표현식
  • isabstract
  • type-graphql
  • 삼각함수
  • Interface
  • 데이터 포맷
  • three.js 구성 요소
  • 렌더링 성능 최적화
  • math.cos()
  • mapped types
  • 디자인 패턴
  • math.sin()
  • 초기 환경설정

최근 글

관리자

글쓰기 / 스킨편집 / 관리자페이지
hELLO · Designed By 정상우.
wam

w__am 개발노트

useLazyQuery,  GraphQL 쿼리를 즉시 실행하지 않고 필요할 때 호출
Frontend/Apollo

useLazyQuery, GraphQL 쿼리를 즉시 실행하지 않고 필요할 때 호출

2024. 10. 15. 20:50

useLazyQuery

https://www.apollographql.com/docs/react/data/queries/#manual-execution-with-uselazyquery

  • useLazyQuery는 Apollo Client에서 제공하는 React 훅으로, GraphQL 쿼리를 즉시 실행하지 않고, 필요할 때 호출할 수 있는 방법을 제공해 준다.
  • 일반적인 useQuery는 컴포넌트가 마운트 될 때 자동으로 쿼리를 실행하지만, useLazyQuery는 사용자가 명시적으로 실행할 때까지 대기하는 차이가 있다.

 

 

useLazyQuery를 사용할 때는 다음과 같은 형태로 사용된다:

const [getQueryResult, { loading, data, error }] = useLazyQuery(MY_QUERY);

이 훅은 두 가지 값을 반환해 준다

  1. getQueryResult
    • 쿼리를 트리거하는 함수.
    • 사용자가 원하는 시점에 이 함수를 호출하면 쿼리가 실행된다.
  2. 결과 객체
    • 쿼리 상태(loading, data, error 등)를 포함한 객체.

 

 

예시

import { useLazyQuery } from '@apollo/client';
import { MY_QUERY } from './queries';

function MyComponent() {
  const [getQueryResult, { loading, data, error }] = useLazyQuery(MY_QUERY);

  return (
    <div>
      <button onClick={() => getQueryResult()}>
        쿼리 실행하기
      </button>
      {loading && <p>로딩 중...</p>}
      {error && <p>에러 발생: {error.message}</p>}
      {data && <p>결과: {JSON.stringify(data)}</p>}
    </div>
  );
}
  • 위 예시에서는 버튼을 클릭할 때 쿼리가 실행되고,
  • 쿼리의 상태에 따라 로딩, 에러, 데이터가 화면에 표시된다.
  • useLazyQuery는 사용자가 특정 이벤트(예: 버튼 클릭, 특정 조건 만족 등)에 따라 쿼리를 실행할 필요가 있을 때 유용하다.

 

 

저작자표시 변경금지 (새창열림)

'Frontend > Apollo' 카테고리의 다른 글

onCompleted 내부에서 Apollo Client의 client.refetchQueries 메서드를 사용하여 쿼리를 수동으로 리패치하기  (0) 2024.12.19
GraphQL 서버와 통신하지 않고 Apollo Client 캐시에서 직접 데이터를 읽고 쓰기  (0) 2024.10.01
Apollo Link 개요와 주요 기능  (0) 2024.09.29
Apollo Client 캐시 동작과 관리 방법  (0) 2024.09.29
GraphQL Code Generator, 타입스크립트 정의 자동 생성  (0) 2024.09.10
    'Frontend/Apollo' 카테고리의 다른 글
    • onCompleted 내부에서 Apollo Client의 client.refetchQueries 메서드를 사용하여 쿼리를 수동으로 리패치하기
    • GraphQL 서버와 통신하지 않고 Apollo Client 캐시에서 직접 데이터를 읽고 쓰기
    • Apollo Link 개요와 주요 기능
    • Apollo Client 캐시 동작과 관리 방법
    wam
    wam

    티스토리툴바