Parçacıklara Dön
ReactTypeScript

React useFetch Hook

Yükleme ve hata durumlarıyla birlikte genel veri çekme hook'u.

reacthookfetchapi
import { useState, useEffect } from class=class="text-emerald-400">"text-emerald-400">'react'

interface FetchState<T> {
  data: T | null
  loading: boolean
  error: string | null
}

function useFetch<T>(url: string): FetchState<T> {
  const [state, setState] = useState<FetchState<T>>({
    data: null, loading: true, error: null
  })

  useEffect(() => {
    const controller = new AbortController()
    setState({ data: null, loading: true, error: null })

    fetch(url, { signal: controller.signal })
      .then(res => res.json())
      .then(data => setState({ data, loading: false, error: null }))
      .catch(err => {
        if (err.name !== class=class="text-emerald-400">"text-emerald-400">'AbortError') {
          setState({ data: null, loading: false, error: err.message })
        }
      })

    return () => controller.abort()
  }, [url])

  return state
}

export default useFetch

Nasıl Kullanılır

Herhangi bir URL ile çağırın: const { data, loading, error } = useFetch<User[]>('/api/users'). Yükleme durumlarını yönetir ve URL değiştiğinde önceki istekleri iptal eder.

İlgili Teknoloji

React

Aklınızda Bir Proje mi Var?

Fikrinizi nasıl hayata geçirebileceğimizi konuşalım. İlk konseptten üretime hazır ürüne kadar — yanınızdayız.

veya ücretsiz görüşme ayarlayın