Manejar formularios complejos con React Hook Form y validación Zod
Encapsula todo el conocimiento para crear y validar formularios en el proyecto con React Hook Form y Zod.
const schema = z.object({
email: z.string().email('Email inválido'),
password: z.string().min(8, 'Mínimo 8 caracteres')
});
const { register, handleSubmit, formState: { errors, isLoading } } = useForm({
resolver: zodResolver(schema),
defaultValues: { email: '', password: '' }
});
{errors.email && (
<span className="text-red-500">{errors.email.message}</span>
)}
<button disabled={isLoading} type="submit">
{isLoading ? 'Enviando...' : 'Enviar'}
</button>
z.infer<typeof schema>reset() en success❌ Validación manual en handlers (usa Zod) ❌ Props sin tipado de Zod ❌ Handlers sin useCallback ❌ Errores genéricos ("Error") ❌ Formularios sin loading state ❌ type="button" en submit (siempre type="submit") ❌ Estilos inline (usa TailwindCSS)
Ver examples.md
conventions.md para patrones del proyecto