Skip to content
문서
API

API

const { data, error, isLoading, isValidating, mutate } = useSWR(key, fetcher, options)

파라미터

  • key: 요청을 위한 고유한 키 문자열(또는 함수 / 배열 / null) (상세내용), (고급 사용법)
  • fetcher: (옵션) 데이터를 가져오기 위한 함수를 반환하는 Promise (상세내용)
  • options: (옵션) SWR hook을 위한 옵션 객체

반환 값

  • data: fetcher가 이행한 주어진 키에 대한 데이터(로드되지 않았다면 undefined)
  • error: fetcher가 던진 에러(또는 undefined)
  • isLoading: 진행 중인 요청이 있고 "로드된 데이터"가 없는 경우. 폴백 데이터와 이전 데이터는 "로드된 데이터"로 간주하지 않습니다.
  • isValidating: 요청이나 갱신 로딩의 여부
  • mutate(data?, options?): 캐시 된 데이터를 뮤테이트하기 위한 함수 (상세내용)

더 많은 정보는 여기서 확인할 수 있습니다.

옵션

  • suspense = false: React Suspense 모드를 활성화 (상세내용)
  • fetcher(args): fetcher 함수
  • revalidateIfStale = true: 오래된 데이터가 있더라도 자동으로 다시 확인 (상세내용)
  • revalidateOnMount: 컴포넌트가 마운트되었을 때 자동 갱신 활성화 또는 비활성화 (details)
  • revalidateOnFocus = true: 창이 포커싱되었을 때 자동 갱신 (상세내용)
  • revalidateOnReconnect = true: 브라우저가 네트워크 연결을 다시 얻었을 때 자동으로 갱신(navigator.onLine을 통해) (상세내용)
  • refreshInterval (상세내용):
    • 기본적으로는 비활성화: refreshInterval = 0
    • number로 설정된 경우, 폴링 인터벌(밀리초)
    • function으로 설정된 경우, 함수가 최신 데이터를 받고 인터벌 반환(밀리초)
  • refreshWhenHidden = false: 창이 보이지 않을 때 폴링(refreshInterval이 활성화된 경우)
  • refreshWhenOffline = false: 브라우저가 오프라인일 때 폴링(navigator.onLine에 의해 결정됨)
  • shouldRetryOnError = true: fetcher에 에러가 있을 때 재시도
  • dedupingInterval = 2000: 이 시간 범위내에 동일 키를 사용하는 요청 중복 제거(밀리초)
  • focusThrottleInterval = 5000: 이 시간 범위 동안 단 한 번만 갱신(밀리초)
  • loadingTimeout = 3000: onLoadingSlow 이벤트를 트리거 하기 위한 타임아웃(밀리초)
  • errorRetryInterval = 5000: 에러 재시도 인터벌(밀리초)
  • errorRetryCount: 최대 에러 재시도 수
  • fallback: 다중 폴백 데이터의 키-값 객체 (예시)
  • fallbackData: 반환될 초기 데이터(노트: hook 별로 존재)
  • keepPreviousData = false: 새 데이터가 로드될 때까지 이전 키의 데이터를 반환 (상세내용)
  • onLoadingSlow(key, config): 요청을 로드하는 데 너무 오래 걸리는 경우의 콜백 함수(loadingTimeout을 보세요)
  • onSuccess(data, key, config): 요청이 성공적으로 종료되었을 경우의 콜백 함수
  • onError(err, key, config): 요청이 에러를 반환했을 경우의 콜백 함수
  • onErrorRetry(err, key, config, revalidate, revalidateOps): 에러 재시도 핸들러
  • onDiscarded(key): 경합 상태(race condition)로 인해 요청이 무시될 경우 실행되는 콜백 함수
  • compare(a, b): 비논리적인 리렌더러를 회피하기 위해 반환된 데이터가 변경되었는지를 감지하는데 사용하는 비교 함수. 기본적으로 stable-hash (opens in a new tab)을 사용합니다.
  • isPaused(): 갱신의 중지 여부를 감지하는 함수. true가 반환될 경우 가져온 데이터와 에러는 무시합니다. 기본적으로는 false를 반환합니다.
  • use: 미들웨어 함수의 배열 (상세내용)
💡

느린 네트워크(2G, <= 70Kbps)에서는, 기본적으로 errorRetryInterval이 10초이며, loadingTimeout은 5초입니다.

전역 설정을 사용해 기본 옵션을 제공할 수도 있습니다.