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 (sirefreshIntervalest 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. Renvoiefalsepar 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.