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초입니다.
전역 설정을 사용해 기본 옵션을 제공할 수도 있습니다.