La double requête en développement est presque sûrement due à React 18 avec StrictMode activé, qui monte et démonte les composants à dessein pour détecter les effets secondaires. Pour l'éviter, assure-toi que ton useEffect a une dépendance vide `[]` si tu veux l'exécuter une seule fois au montage, et nettoie les requêtes en attente avec un AbortController ou un flag booléen dans la fonction de cleanup pour que ça ne tente pas de mettre à jour l'état si le composant se démonte. Si tu as déjà ça et que c'est toujours lent, le problème est probablement que tu rafraîchis l'état inutilement ou que tu fais des rendus massifs ; utilise React DevTools Profiler pour voir où ça se fige, et considère d'utiliser `useMemo` ou `useCallback` si tu as beaucoup de calculs ou si tu passes des callbacks aux composants enfants.