React 19 de Cero a Experto / Formularios y validación
Reto: formulario de gasto validado y accesible
Cierras el módulo construyendo el formulario que toda app real necesita: agregar un gasto a "Mi Bolsillo" con validación clara, errores ACCESIBLES y buen comportamiento de foco. Juntas todo lo del módulo —controlados, validación con reglas, y los cuatro pilares de accesibilidad— en una pieza pulida de principio a fin. Cuando termines, tendrás un patrón de formulario que puedes reusar en cualquier proyecto.
Reto
Formulario de gasto accesible
Qué debes construir
Un formulario para agregar un gasto, validado y accesible, que al enviar añade el gasto a una lista:
- Tres campos:
nombre(texto, mínimo 2 caracteres),valor(número, mayor que 0) ycategoria(select: comida / transporte / ocio). - Validación al enviar: cada campo con su mensaje de error si no cumple.
- Errores accesibles: cada input con su
<label>,aria-invalid,aria-describedbyenlazado al mensaje, y el mensaje conrole="alert". - Foco al primer error: al enviar con errores, el foco salta al primer campo inválido.
- Éxito: si todo es válido, agrega el gasto a una lista, limpia el formulario y anuncia el éxito
con
role="status".
Reglas
- Inputs controlados (
value+onChange) para poder validar y limpiar. - Todo tipado con TypeScript;
categoriacomo unión de literales. - Accesibilidad completa: labels asociados, ARIA en errores, gestión de foco.
35:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 8 conquistado: dominas los formularios —controlados vs no controlados, React Hook Form, Zod, errores accesibles y wizards multi-paso—. Tu app tiene pantallas, datos, estado y formularios sólidos. El módulo 9 da el salto más emocionante: el TIEMPO REAL —WebSockets y Socket.io— para apps donde los datos fluyen en vivo entre usuarios: chats, presencia, colaboración. La antesala del proyecto final.