102 votes

Dans useEffect, quelle est la différence entre ne fournir aucun tableau de dépendances et un tableau vide ?

Je suppose que le useEffect est exécuté après chaque rendu, s'il est fourni avec un tableau de dépendances vide :

 useEffect(() => {
  performSideEffect();
}, []);

Mais quelle est la différence entre cela et le suivant ?

 useEffect(() => {
  performSideEffect();
});

Notez l'absence de [] à la fin. Le plugin linter ne lance pas d'avertissement.

11voto

Ankur Marwaha Points 393

Juste un ajout à la réponse @bamtheboozle's

Si vous retournez une fonction de nettoyage à partir de votre useEffect

 useEffect(() => {
  performSideEffect();
  return cleanUpFunction;
}, []);

Il s'exécutera avant chaque useEffect , pour nettoyer l'exécution précédente de useEffect. (Sauf la toute première exécution useEffect)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X