Una interfaz estática es como un póster — bonita pero no hace nada. Lo que hace que una app sea una app son los eventos: clicks, escritura, envío de formularios, movimiento del ratón...
En React, los eventos funcionan de forma muy similar a HTML, pero con algunas diferencias importantes.
En HTML escribes onclick en minúsculas. En JSX, usas camelCase:
Dos diferencias cruciales:
onclick → onClick, onchange → onChangeEste es el error más común de principiantes:
Con handleClick() (con paréntesis), la función se ejecuta al renderizar el componente, no al hacer click. Sin paréntesis, le pasas la referencia a la función y React la llama cuando el evento ocurra.
La convención es nombrar las funciones que manejan eventos con el prefijo handle:
Para handlers simples, puedes usar una función flecha directamente:
Esto es útil cuando necesitas pasar un argumento:
Cada handler recibe automáticamente un objeto event con información sobre el evento:
e.target es el elemento que disparó el evento. e.target.value es el texto actual del input.
| Evento | Se dispara cuando... |
|---|---|
onClick | El usuario hace click |
onChange | El valor de un input/select cambia |
onSubmit | Se envía un formulario |
onMouseEnter | El ratón entra en el elemento |
onMouseLeave | El ratón sale del elemento |
onFocus | El elemento recibe foco |
onBlur | El elemento pierde foco |
onKeyDown | Se presiona una tecla |
handleClick y conéctala al botón con onClickonChange al input que muestre el valor con console.log o alertPrueba a escribir en el input y a hacer click en el botón.
Los eventos son el puente entre el usuario y tu aplicación. Sin eventos, no hay interacción. Sin interacción, no hay app.