React Dojo

Buscar

Busca conceptos, ejercicios y quizzes

Práctica · Efectos

efectos innecesarios

useEffect no es un ciclo de vida

useEffect existe para sincronizar con sistemas externos (APIs, DOM, timers). Usarlo para transformar datos o calcular estado en respuesta a otro estado es el patrón más común que causa renders dobles, bugs de sincronización y código difícil de seguir.

Cuándo NO usar useEffect

Si el código dentro del efecto solo lee props o estado y actualiza otro estado, no necesita un efecto. Hazlo durante el render: calcula el valor derivado directamente como una variable. El resultado es el mismo pero sin el render extra que produce el efecto al ejecutarse después del primer render.

Cuándo SÍ usar useEffect

Reserva useEffect para sincronización real con el mundo exterior: fetch, suscripciones a eventos del DOM o APIs externas, manipulación directa de un nodo DOM, o integración con librerías de terceros que operan fuera del árbol de React.

Tropiezos comunes

  • 01useEffect con setState siempre produce al menos un render extra: el inicial con el estado vacío y otro cuando el efecto actualiza.
  • 02Encadenar efectos (un efecto actualiza estado que dispara otro efecto) es casi siempre una señal de que la lógica debería estar en el render o en un manejador de evento.
  • 03fetch en useEffect sin cleanup puede actualizar estado de un componente ya desmontado — siempre retorna una función que cancela la petición o ignora la respuesta.
¿Fue útil?
Inicia sesión para dar feedback