Server-Side Rendering (SSR) s CosmosDB

Popis

SSR v kombinácii so Server Actions umožňuje vytvárať plne dynamické aplikácie. Dáta sú načítané priamo na serveri a mutácie (pridávanie dát) prebiehajú cez bezpečné serverové funkcie, ktoré po dokončení automaticky revalidujú cache a aktualizujú UI bez nutnosti manuálneho refreshu.

Funkčná ukážka (Demo)

Pridať nový produkt

Názov produktuKategóriaCena
3333344444555.00
dsadaerwer5435555.00
sssssseeeee33.00
testtest2444.00

Ukážka kódu

// app/ssr/actions.ts
"use server";
import clientPromise from "@/lib/mongodb";
import { revalidatePath } from "next/cache";

export async function addProduct(formData: FormData) {
  const client = await clientPromise;
  const db = client.db("showcase");
  await db.collection("products").insertOne({
    name: formData.get("name"),
    category: formData.get("category"),
    price: parseFloat(formData.get("price")),
    createdAt: new Date(),
  });
  revalidatePath("/ssr"); // Refresh dát na strane servera
}

// app/ssr/page.tsx
export default async function SSRPage() {
  const products = await getProducts();
  
  return (
    <form action={addProduct}>
       <input name="name" required />
       <input name="category" required />
       <input name="price" type="number" step="0.01" required />
       <button type="submit">Pridať</button>
    </form>
  );
}