0Pricing
React Academy · Lección

Mejora progresiva con Server Actions

Cree formularios que funcionen sin JavaScript mediante Server Actions y mejórelos con React cuando se cargue JS.

Mejora progresiva con Server Actions es una lección gratuita de React Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

Qué es la mejora progresiva

La mejora progresiva es una estrategia de desarrollo web en la que se comienza con una base funcional de HTML y se añaden capacidades de JavaScript por capas. La funcionalidad principal funciona para todos los usuarios, incluidos quienes tienen JavaScript deshabilitado, conexiones lentas o utilizan tecnologías de asistencia, mientras que quienes tienen JavaScript habilitado obtienen una experiencia mejorada.

La base sin JavaScript

Un formulario con action={serverAction} funciona como un POST de HTML de página completa incluso sin JavaScript. El navegador envía el formulario, el servidor ejecuta la acción y devuelve una página HTML actualizada. Este es el mismo mecanismo que impulsa los formularios web desde 1995; las Server Actions de React son compatibles con él por diseño.

Validación en el servidor sin JS

Cuando no hay JavaScript, la validación debe realizarse en el servidor. La Server Action valida los datos del formulario y, si la validación falla, devuelve el estado de error. El servidor vuelve a renderizar la página con los mensajes de error incluidos en el HTML. El usuario ve los errores sin que se ejecute JavaScript en el cliente.

Capa de mejora con JavaScript

Cuando React hidrata la página, intercepta los envíos de formularios y los gestiona como llamadas asíncronas a Server Actions en lugar de realizar POST de página completa. El usuario obtiene una actualización en el mismo lugar sin recargar la página, un estado pendiente visible y una UI optimista, todo ello sin cambiar la acción ni la estructura subyacentes del formulario.

Patrón seguro para la hidratación

El servidor renderiza el formulario con el estado inicial incluido en el HTML. Cuando React se hidrata, recupera ese estado inicial sin provocar parpadeos ni discrepancias. El hook useActionState está diseñado para conciliar correctamente el estado inicial renderizado en el servidor con la hidratación en el cliente.

Transiciones de React para una respuesta inmediata

Las transiciones de React permiten que la UI siga siendo interactiva durante una llamada a una Server Action. Envolver el envío del formulario en una transición permite que React dé menor prioridad a la comunicación con el servidor y mantenga la página receptiva. Esto hace que la experiencia mejorada con JavaScript parezca mucho más rápida que una recarga de página completa.

Comparación de la experiencia de usuario

Sin JavaScript: el usuario hace clic en enviar, el navegador envía un POST de página completa, el servidor responde con una página HTML nueva (incluye un breve destello blanco y reinicia la posición de desplazamiento). Con JavaScript: React intercepta el envío, la acción se ejecuta de forma asíncrona y solo las partes modificadas de la página se actualizan en el mismo lugar, sin destello ni reinicio de la posición de desplazamiento.

Indexación por motores de búsqueda

La mejora progresiva beneficia a los rastreadores de los motores de búsqueda, que quizá no ejecuten JavaScript. Una página de búsqueda o filtrado basada en formularios que funciona como un formulario HTML de página completa se puede indexar y rastrear. Los resultados renderizados en el servidor permiten que el rastreador vea contenido real, no divs vacíos esperando a que se ejecute JavaScript.

Beneficios de accesibilidad

Los lectores de pantalla y las tecnologías de asistencia funcionan mejor con HTML semántico. Un formulario mejorado progresivamente utiliza elementos reales como <form>, <input> y <button>, que las tecnologías de asistencia entienden de forma nativa. JavaScript añade regiones activas de ARIA para anunciar los errores, mejorando la base accesible en lugar de sustituirla.

Conectividad limitada y resiliencia de red

En redes poco fiables, es posible que los paquetes de JavaScript no se carguen. Una página mejorada progresivamente sigue funcionando para el caso de uso básico. Esta resiliencia es especialmente importante para los usuarios con conexiones móviles en zonas con poca cobertura o en regiones donde las condiciones de red varían mucho.

Cuándo aplicar la mejora progresiva

La mejora progresiva es más valiosa para formularios públicos: registro, contacto, búsqueda y proceso de pago. Es posible que los paneles internos con interactividad compleja no la necesiten. Aplíquela de forma intencionada donde sean importantes el máximo alcance y la fiabilidad, como en páginas de marketing, comercio electrónico y flujos de incorporación de usuarios.

Definición de mejora progresiva

¿Cuál es el principio fundamental de la mejora progresiva?

Resumen de la lección

La mejora progresiva significa que el formulario funciona como un POST de HTML simple sin JavaScript. Las Server Actions lo admiten de forma nativa: action={serverAction} habilita el envío mediante un POST de página completa. Después, la hidratación de React transforma el formulario en actualizaciones asíncronas en el mismo lugar, con estados pendientes. Este enfoque beneficia la accesibilidad, el SEO y a los usuarios con conectividad limitada, y al mismo tiempo ofrece una experiencia enriquecida con JavaScript.

Preguntas frecuentes

¿La lección «Mejora progresiva con Server Actions» es gratis?

Sí — el texto completo de «Mejora progresiva con Server Actions» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Mejora progresiva con Server Actions»?

Cree formularios que funcionen sin JavaScript mediante Server Actions y mejórelos con React cuando se cargue JS. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Mejora progresiva con Server Actions»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Server Actions en React 19 y Next.js
  2. Acciones de formularios: sustitución de las rutas de API para mutaciones
  3. useActionState y useFormStatus
  4. Mejora progresiva con Server Actions
← Volver a React Academy