Server Actions en Next.js 15: guía práctica
Descubre cómo las Server Actions en Next.js 15 transforman la interacción entre cliente y servidor para optimizar el rendimiento y simplificar el código.
Roberto Serrano
Ingeniero de Software

¿Te resulta útil? Déjame saber con un like o guárdalo para luego.
Introducción a las Server Actions
Con la llegada de Next.js 15, las Server Actions han cambiado la forma en que las aplicaciones manejan la comunicación entre el cliente y el servidor. Estas acciones ofrecen una manera más eficiente y directa de realizar operaciones del lado del servidor desde nuestros componentes de React. En este artículo, profundizaremos en el "por qué" y el "cómo" de las Server Actions, proporcionando ejemplos prácticos para implementarlas en tus proyectos.
¿Por qué usar Server Actions?
Ventajas de las Server Actions
Las Server Actions en Next.js 15 permiten ejecutar lógica del lado del servidor directamente desde los componentes de React. Esto es especialmente beneficioso para operaciones que requieren interacción con bases de datos o servicios externos, ya que:
- Rendimiento Mejorado: Al ejecutar estas acciones en el servidor, se reduce la carga en el cliente, mejorando el tiempo de respuesta.
- Seguridad: Mantener la lógica sensible en el servidor protege mejor los datos sensibles.
- Simplificación del Código: Evita tener que escribir APIs REST o GraphQL para cada operación, reduciendo la complejidad del código.
Cómo funcionan las Server Actions
Implementación básica
Para implementar Server Actions en Next.js 15, necesitas definirlas en tus componentes. Aquí tienes un ejemplo básico:
// app/actions.ts
'use server'
export async function obtenerDatosUsuario(userId: string) {
// Lógica para obtener datos del usuario desde la base de datos
const response = await fetch(`https://api.example.com/user/${userId}`, {
next: { revalidate: 60 },
})
const data = await response.json()
return data
}
Uso en componentes de React
Una vez definida la Server Action, puedes usarla en tus componentes de React de la siguiente manera:
// app/page.tsx
import React, { useState } from 'react';
import { obtenerDatosUsuario } from './actions';
const UserProfile = () => {
const [userData, setUserData] = useState(null);
const handleFetchUser = async () => {
try {
const data = await obtenerDatosUsuario('1234');
setUserData(data);
} catch (error) {
console.error('Error fetching user data:', error);
}
};
return (
<div>
<h1>Perfil de Usuario</h1>
<button onClick={handleFetchUser}>Cargar Datos de Usuario</button>
{userData && <pre>{JSON.stringify(userData, null, 2)}</pre>}
</div>
);
};
export default UserProfile;
Consideraciones de Seguridad
Validación y Autenticación
Aunque las Server Actions se ejecutan en el servidor, es crucial implementar medidas de seguridad como la validación de entrada y la autenticación del usuario. Esto asegura que las acciones solo sean accesibles por usuarios autorizados y con datos válidos.
// app/actions.ts
'use server'
import { auth } from '@/lib/auth'
export async function actualizarPerfilUsuario(userId: string, nuevosDatos: { nombre: string; bio: string }) {
const session = await auth()
if (!session || session.user.id !== userId) {
throw new Error('No autorizado')
}
// Lógica para actualizar el perfil del usuario
const response = await fetch(`https://api.example.com/user/${userId}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(nuevosDatos),
})
return response.json()
}
Despliegue y Rendimiento
Optimización del Despliegue
Una vez que las Server Actions están implementadas, es importante considerar cómo se despliegan. Asegúrate de que tu infraestructura de servidor esté optimizada para manejar la carga de trabajo adicional que puede surgir al mover más lógica al servidor.
Beneficios de CDN y Caching
El uso de redes de entrega de contenido (CDN) y caching puede mejorar significativamente el rendimiento de las Server Actions al reducir la latencia y acelerar las respuestas.
Conclusión
Las Server Actions en Next.js 15 son una herramienta poderosa para mejorar la eficiencia y la seguridad de tus aplicaciones web. Al mover la lógica crítica al servidor, puedes crear aplicaciones más rápidas y seguras, al mismo tiempo que simplificas tu código. Espero que esta guía te ayude a integrar Server Actions de manera efectiva en tus proyectos. ¡Felices codificaciones!
Etiquetas
¿Te ha gustado? Compártelo.
Más sobre el tema
Artículos relacionados

Cómo usar React Server Components en Next.js 15
Descubre cómo integrar React Server Components en Next.js 15 para mejorar el rendimiento de tus aplicaciones web.

Generar imágenes dinámicas para Open Graph en Astro con @vercel/og
Cuando se trata de compartir tu sitio web en redes sociales, la primera impresión cuenta mucho. Las imágenes de Open Graph (OG) son esenciales para captar la atención en plataformas como Facebook, Twitter y LinkedIn.