Uso de Server Actions en Next.js para Formularios React

Clase 40 de 57Curso de Next.js 14

Resumen

Next.js ofrece una funcionalidad innovadora conocida como server actions, la cual revoluciona la manera en la que trabajamos con React en el servidor y el cliente. Un server action actúa como una pequeña función en la nube, comparable a una lambda, que se ejecuta cuando la invocamos en nuestro código, por ejemplo, al llenar un formulario. Este mecanismo facilita la ejecución de acciones del lado del servidor en aplicaciones que usan componentes de React, tanto del lado del servidor como del cliente, permitiendo un acceso eficiente y directo a recursos del servidor como headers y cookies, cruciales para procesos como la autorización. Exploraremos cómo se implementan y organizan los server actions para aprovechar al máximo su potencial en el desarrollo con Next.js.

¿Qué son los server actions en Next.js?

Los server actions permiten ejecutar código en el servidor dentro de componentes de React, esto significa que pueden realizarse operaciones en el servidor incluso si el componente es un cliente. Estas acciones se comportan como lambdas que se activan mediante eventos específicos en nuestra aplicación, tales como interacciones de usuario en un formulario.

¿Cómo se crean y organizan los server actions?

Para usar los server actions, se necesita una estructura de organización que mantenga el código claro y accesible. Los pasos para crearlos son:

  • Crear una nueva carpeta denominada actions dentro del directorio source.
  • Añadir un archivo index.typescript en la carpeta actions.
  • Redactar funciones precedidas por la sentencia use server para asegurar que se ejecutan en el servidor.

¿Cuáles son los beneficios de utilizar server actions?

Los server actions ofrecen distintas ventajas:

  • Permiten el acceso a recursos del servidor desde componentes de React.
  • Mejoran la separación de preocupaciones manteniendo el código organizado.
  • Facilitan la autorización mediante el uso de cookies y headers directamente desde el servidor.

¿Cómo se implementan los server actions en un formulario?

La implementación en un formulario sería así:

  • Crear un evento handleSubmit que recoge los datos del formulario.
  • Prevenir el comportamiento por defecto del formulario para manejar la lógica nosotros mismos.
  • Invocar la acción del servidor pasando los formularios como argumento, lo que ejecutará la función en el servidor.
  • Observar que, a pesar de ser un componente de cliente, el console.log aparecerá en el servidor debido a que se está usando un server action.

¿Por qué es preferible organizar los server actions fuera de los componentes principales?

Organizar las funciones en archivos separados dentro de la carpeta actions mantiene el código de los componentes principal más limpio y facilita la mantenimiento y escalabilidad del código. Además, se pueden dividir las acciones según las entidades o dominios de la aplicación, lo cual concuerda con principios de buena arquitectura de software.

En resumen, los server actions son una potente herramienta en Next.js que enriquece el manejo de operaciones en aplicaciones React, permitiendo una gran flexibilidad y optimización en la comunicación entre el cliente y el servidor. Con una organización cuidada y una implementación adecuada, los server actions abren un abanico de oportunidades para el desarrollo avanzado en la web. A medida que sigues aprendiendo y aplicando estas técnicas, verás cómo se expanden las capacidades de tus proyectos y la eficiencia de tus soluciones. ¡Sigue explorando y experimentando con estas herramientas para llevar tus habilidades de desarrollo al siguiente nivel!