💻 Exemplos: Capítulo 19: Server Actions, API Routes, Caching Estratégico e SEO
Especialização Frontend com React & TypeScript • Demonstrações Práticas Executáveis
🎯 Contexto e Objetivo Prático
Server Actions com diretiva ‘use server’, validação de formulário com Zod no backend e revalidação de tags de cache.
💻 Código Fonte React 19 (TSX)
// app/actions/products.ts
"use server";
import { revalidateTag } from "next/cache";
import { z } from "zod";
const ProductSchema = z.object({
name: z.string().min(3),
price: z.coerce.number().positive()
});
export async function createProductAction(prevState: any, formData: FormData) {
const parsed = ProductSchema.safeParse({
name: formData.get("name"),
price: formData.get("price")
});
if (!parsed.success) {
return { success: false, errors: parsed.error.flatten().fieldErrors };
}
// Persistência direta no banco de dados corporativo
console.log("[DB] Inserindo produto:", parsed.data);
// Invalida o cache das páginas que exibem produtos
revalidateTag("products-cache");
return { success: true, message: "Produto cadastrado com sucesso!" };
}
🖥️ Saída de Renderização Visual e Comportamento
[Execução Segura no Servidor via POST RPC]
POST /dashboard (Server Action: createProductAction)
Validação Zod OK -> Invalidação da tag 'products-cache' -> Atualização atômica.