Eventos y estado local con useState

Aprende cómo reaccionar a interacciones del usuario y cómo el estado local controla el render en React.

Una interfaz sin eventos es estática: React cobra sentido cuando respondes a clics, envíos de formularios, cambios de inputs y acciones del usuario.

useState permite almacenar memoria local del componente y volver a renderizar la UI cuando ese dato cambia.

La idea clave es que no manipulas el DOM directamente: cambias estado, y React recalcula la vista.

Esta separación mejora mucho la consistencia del código frente a enfoques imperativos.

  • React usa eventos sintéticos con una interfaz consistente en distintos navegadores.
  • En JSX, los manejadores se pasan como funciones: `onClick`, `onChange`, `onSubmit`.
  • No debes ejecutar la función en el render (`onClick={miFn()}`) salvo casos concretos; normalmente pasas la referencia (`onClick={miFn}`).
  • Las funciones de evento son el puente entre interacción de usuario y actualización de estado.
  • Cada llamada a useState devuelve el valor actual y su función de actualización.

Eventos en React: misma intención, API coherente

React usa eventos sintéticos con una interfaz consistente en distintos navegadores.

En JSX, los manejadores se pasan como funciones: `onClick`, `onChange`, `onSubmit`.

No debes ejecutar la función en el render (`onClick={miFn()}`) salvo casos concretos; normalmente pasas la referencia (`onClick={miFn}`).

Las funciones de evento son el puente entre interacción de usuario y actualización de estado.

useState: memoria local del componente

Cada llamada a useState devuelve el valor actual y su función de actualización.

Buenas prácticas iniciales

Pequeñas decisiones aquí evitan bugs cuando el componente crezca.

Cuando varias actualizaciones dependen del estado previo, usa `setState(prev => prev + 1)` para evitar inconsistencias.

No guardes en estado lo que puedes derivar directamente de props o de otros estados.

La claridad del modelo de estado es más importante que escribir menos líneas.

  • Nombrar estado con intención: `isOpen`, `searchTerm`, `selectedId`.
  • Evitar múltiples estados duplicados para el mismo dato.
  • Usar actualización funcional cuando dependes del valor previo.
  • Mantener handlers simples y enfocados.
React
06

Eventos y estado local con useState

Aprende cómo reaccionar a interacciones del usuario y cómo el estado local controla el render en React.

Código del tema: const [value, setValue] = useState("");

📘 Teoría

Eventos en React: misma intención, API coherente

React usa eventos sintéticos con una interfaz consistente en distintos navegadores.

1

En JSX, los manejadores se pasan como funciones: `onClick`, `onChange`, `onSubmit`.

2

No debes ejecutar la función en el render (`onClick={miFn()}`) salvo casos concretos; normalmente pasas la referencia (`onClick={miFn}`).

3

Las funciones de evento son el puente entre interacción de usuario y actualización de estado.

useState: memoria local del componente

Cada llamada a useState devuelve el valor actual y su función de actualización.

Contador mínimo con estado
import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <button onClick={() => setCount(count + 1)}>
      Has hecho {count} clics
    </button>
  );
}

Buenas prácticas iniciales

Pequeñas decisiones aquí evitan bugs cuando el componente crezca.

Cuando varias actualizaciones dependen del estado previo, usa `setState(prev => prev + 1)` para evitar inconsistencias.

No guardes en estado lo que puedes derivar directamente de props o de otros estados.

La claridad del modelo de estado es más importante que escribir menos líneas.

  • Nombrar estado con intención: `isOpen`, `searchTerm`, `selectedId`.
  • Evitar múltiples estados duplicados para el mismo dato.
  • Usar actualización funcional cuando dependes del valor previo.
  • Mantener handlers simples y enfocados.

🧪 Aprende probando

Ejemplo Ejemplo: panel desplegable Un caso real sencillo donde el estado decide si se muestra contenido adicional.

🏁 Retos

Reto Reto: contador con incremento funcional Actualiza el contador usando la forma funcional de setState.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre React.

Test de React

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .