API
const { data, error, isLoading, isValidating, mutate } = useSWR(key, fetcher, options)
Paramètres
key
: une chaîne de caractères unique pour la requête (ou une fonction / tableau / null) (détails), (utilisation avancée)fetcher
: (facultatif) une fonction retournant une promesse pour récupérer vos données (détails)options
: (facultatif) un objet d'options pour ce hook SWR
Valeurs retournées
data
: données pour la clé donnée résolue parfetcher
(ou undefined si non chargé)error
: erreur renvoyée parfetcher
(ou undefined)isLoading
: si une requête est en cours et qu'aucune "donnée chargée" n'est disponible. Les données de secours et les données précédentes ne sont pas considérées comme des "données chargées"isValidating
: s'il y a une requête ou une revalidation en cours de chargementmutate(data?, options?)
: fonction pour muter la donnée mise en cache (détails)
Plus d'informations ici.
Options
suspense = false
: activer le mode React Suspense (détails)fetcher(args)
: la fonction fetcherrevalidateIfStale = true
: revalider automatiquement même s'il y a des données obsolètes (détails)revalidateOnMount
: activer ou désactiver la revalidation automatique lorsque le composant est montérevalidateOnFocus = true
: revalider automatiquement lorsque la fenêtre est mise au premier plan (détails)revalidateOnReconnect = true
: revalider automatiquement lorsque le navigateur retrouve une connexion réseau (vianavigator.onLine
) (détails)refreshInterval
(détails):- Désactivé par défaut:
refreshInterval = 0
- Si défini sur un nombre, intervalle de sondage en millisecondes
- Si défini sur une fonction, la fonction recevra les dernières données et devrait renvoyer l'intervalle en millisecondes
- Désactivé par défaut:
refreshWhenHidden = false
: actualisation lorsque la fenêtre est invisible (sirefreshInterval
est activé)refreshWhenOffline = false
: actualisation lorsque le navigateur est hors ligne (déterminé parnavigator.onLine
)shouldRetryOnError = true
: réessayer lorsque le fetcher a une erreurdedupingInterval = 2000
: dédupliquer les requêtes avec la même clé dans cette période de temps en millisecondesfocusThrottleInterval = 5000
: ne revalider qu'une seule fois pendant une période de temps en millisecondesloadingTimeout = 3000
: délai d'attente pour déclencher l'événement onLoadingSlow en millisecondeserrorRetryInterval = 5000
: intervalle avant la nouvelle tentative en millisecondeserrorRetryCount
: nombre maximal de tentatives d'erreurfallback
: un objet clé-valeur de plusieurs données de secours (exemple)fallbackData
: données initiales à renvoyer (note : ceci est per-hook)keepPreviousData = false
: renvoyer les données de la clé précédente jusqu'à ce que les nouvelles données soient chargées (détails)onLoadingSlow(key, config)
: fonction de rappel lorsqu'une requête prend trop de temps à charger (voirloadingTimeout
)onSuccess(data, key, config)
: fonction de rappel lorsqu'une requête se termine avec succèsonError(err, key, config)
: fonction de rappel lorsqu'une requête renvoie une erreuronErrorRetry(err, key, config, revalidate, revalidateOps)
: gestionnaire des nouvelles tentatives d'erreuronDiscarded(key)
: fonction de rappel lorsqu'une requête est ignorée en raison de conditions de coursecompare(a, b)
: fonction de comparaison utilisée pour détecter quand les données renvoyées ont changé, pour éviter les rendus superflus. Par défaut, stable-hash (opens in a new tab) est utilisé.isPaused()
: fonction pour détecter si les revalidations sont en pause, ignorera les données récupérées et les erreurs lorsqu'elle renvoietrue
. Renvoiefalse
par défaut.use
: tableau de fonctions middleware (détails)
💡
Lorsque vous avez un réseau lent (2G, <= 70Kbps), errorRetryInterval
sera de 10s, et
loadingTimeout
sera de 5s par défaut.
Vous pouvez également utiliser la configuration globale pour fournir des options par défaut.