Imagina un contador. Con lo que sabes hasta ahora, podrías intentar algo así:
Haz click en el botón. La consola muestra 1, 2, 3... pero la pantalla siempre muestra 0. ¿Por qué?
Porque las variables normales no provocan un re-render. React no sabe que algo cambió, así que no vuelve a pintar el componente.
Para que React detecte cambios y actualice la interfaz, necesitas importar el hook useState de la librería de react:
Ahora sí: cada click actualiza el número en pantalla.
useState devuelve un array con dos elementos:
count)setCount)Puedes nombrarlos como quieras, pero la convención es [cosa, setCosa].
React ejecuta tu componente por primera vez. useState(0) devuelve 0.
const [count, setCount] = useState(0);
// count = 0Cuando llamas a setCount(1), ocurre esto:
useState(0) devuelve 1 en vez de 0Todo esto pasa automáticamente. Tú solo dices "el nuevo valor es 1" y React se encarga del resto.
Un componente puede tener tantos useState como necesite:
Cada estado es independiente.
Modificar la variable directamente no funciona porque React no se entera del cambio. La función setter es la que le dice a React: "hey, algo cambió, vuelve a renderizar".
Si usas el mismo componente dos veces, cada uno tiene su propio estado:
Hacer click en un contador no afecta al otro. Cada instancia tiene su propio "cajón" de estado.
Crea un contador con:
useState(0)+1)-1)Bonus: añade un botón para resetear a 0.
useState es la piedra angular de React. A partir de ahora, tus componentes ya no son estáticos — reaccionan, recuerdan y cambian. Por eso se llama React.