React Academy · Lección

Acciones de formularios: sustitución de las rutas de API para mutaciones

Conecte Server Actions directamente con las acciones de formularios HTML para realizar mutaciones de formularios sin código repetitivo y con una revalidación completa.

Lección 2 de 413 pasos

Acciones de formularios: sustitución de las rutas de API para mutaciones es una lección gratuita de React Academy en CoddyKit. Esta es la lección 2 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.

El patrón tradicional

En las aplicaciones tradicionales de Next.js, los envíos de formularios requieren un componente de cliente con un controlador onSubmit que llame a fetch() para enviar los datos mediante POST a una ruta de API. Este patrón funciona, pero exige escribir y mantener por separado tanto la lógica de fetch del lado del cliente como el controlador de la ruta del lado del servidor.

Server Actions simplifican los formularios

Con Server Actions, se sustituyen la llamada a fetch y la ruta de API por una sola función. El elemento de formulario recibe el Server Action como su propiedad action: <form action={serverAction}>. React intercepta el envío y llama automáticamente a la acción con los datos del formulario.

Acceso a los campos del formulario con FormData

El Server Action recibe automáticamente un objeto FormData como argumento cuando se activa desde un formulario. Puede acceder a cada campo mediante formData.get('email'), que devuelve el valor como una cadena. Todos los métodos estándar de FormData están disponibles, incluido getAll() para campos de selección múltiple.

Devolución de resultados desde las acciones

Un Server Action puede devolver un valor serializable que el cliente puede utilizar. Devolver un objeto de error como { error: 'Email already exists' } o un indicador de éxito como { success: true } permite al cliente actualizar la interfaz de usuario según corresponda sin recargar toda la página.

Los componentes de página se mantienen sencillos

Como la acción del formulario es un Server Action, el componente de página que contiene el formulario no necesita ser un componente de cliente. El servidor renderiza el formulario como HTML estático y solo las partes interactivas, como la visualización de errores, requieren JavaScript del lado del cliente. Esto reduce considerablemente el bundle del cliente.

Mejora progresiva integrada

Un formulario con action={serverAction} funciona sin JavaScript habilitado. El navegador realiza un POST de formulario HTML estándar, el servidor ejecuta la acción y devuelve la página actualizada. Esta verdadera mejora progresiva permite que el formulario funcione correctamente en cualquier entorno.

Revalidación de datos después de una mutación

Después de que un Server Action modifique los datos, es necesario actualizar los datos almacenados en caché de la página. La llamada a revalidatePath('/dashboard') dentro de la acción invalida la caché de Next.js para esa ruta, lo que hace que la siguiente solicitud obtenga datos actualizados. Esta es la forma estándar de mantener actualizadas las páginas renderizadas en el servidor después de las mutaciones.

Invalidación granular de la caché

revalidateTag('user-data') proporciona una invalidación de caché más específica que revalidatePath. Puede etiquetar las llamadas a fetch con next: { tags: ['user-data'] } y después invalidar de una sola vez todos los datos etiquetados desde el Server Action, independientemente de las rutas que los muestren.

Redirección después de una acción

Los Server Actions pueden redirigir al usuario a una página nueva después de una mutación correcta mediante una llamada a redirect('/success') desde el módulo next/navigation. Esta redirección se gestiona en el servidor, por lo que el navegador recibe una respuesta de navegación adecuada en lugar de una redirección del lado del cliente.

Mutaciones no relacionadas con formularios mediante startTransition

Los Server Actions no se limitan a los envíos de formularios. Para clics en botones y otros activadores que no sean formularios, envuelva la llamada a la acción en startTransition(() => action(arg)). Esto marca la navegación como una transición, lo que permite a React mantener visible la interfaz actual mientras la acción se ejecuta en el servidor.

Validación dentro de las acciones

Los Server Actions son el lugar adecuado para realizar la validación en el servidor. Valide los campos de FormData, devuelva errores de validación si no son válidos y continúe con la mutación únicamente si todos los campos son correctos. Las bibliotecas como Zod se integran bien en este caso: analice FormData con un esquema tipado y devuelva el mapa de errores si se produce un fallo.

Pregunta sobre FormData

¿Qué recibe un Server Action como argumento cuando se activa mediante el envío de un formulario?

Resumen de la lección

Los Server Actions sustituyen el patrón de fetch + ruta de API para las mutaciones de formularios. La propiedad action del formulario acepta directamente un Server Action, que recibe un objeto FormData. Las acciones devuelven resultados serializables para actualizar la interfaz del cliente, admiten revalidatePath y revalidateTag para invalidar la caché y funcionan progresivamente sin JavaScript.

Gratis para empezar

Aprende React con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
88
Lecciones
324

Preguntas frecuentes

¿La lección «Acciones de formularios: sustitución de las rutas de API para mutaciones» es gratis?

Sí — el texto completo de «Acciones de formularios: sustitución de las rutas de API para mutaciones» 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 «Acciones de formularios: sustitución de las rutas de API para mutaciones»?

Conecte Server Actions directamente con las acciones de formularios HTML para realizar mutaciones de formularios sin código repetitivo y con una revalidación completa. 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 2 de 4.

¿Cuánto tiempo toma la lección «Acciones de formularios: sustitución de las rutas de API para mutaciones»?

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