0Pricing
TypeScript Academy · Ders

Veri getirme ve eylem türlerini belirleme

Sunucuda türleri belirlenmiş JSON ile veri getirin, önbelleğe alma/yeniden doğrulamayı denetleyin ve formlar ile değişiklikler için türleri belirlenmiş Sunucu Eylemleri oluşturun.

Veri getirme ve eylem türlerini belirleme, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 3 dersten oluşur.

Giriş

Amaç: Sunucu bileşenlerinde türü belirtilmiş JSON ile veri almak, önbelleği/yeniden doğrulamayı yapılandırmak ve değişiklikler için türü belirtilmiş Sunucu Eylemleri oluşturmaktır.

  • Türü belirtilmiş fetch yardımcıları
  • Önbellek: yeniden doğrulama ve depolamama
  • Formlarla Sunucu Eylemleri

Türü belirtilmiş fetch yardımcısı

Yanıtların kodunu çözmek ve 200 olmayan durumlarda hata fırlatmak için küçük bir json<T> yardımcısı oluşturun. ISR benzeri önbellekleme için yeniden doğrulamayı kullanın.

// app/lib/http.ts
export async function json<T>(res: Response): Promise<T> {
  if (!res.ok) throw new Error(`HTTP ${res.status}`)
  return (await res.json()) as T
}

// app/page.tsx (server)
export type Post = { id: number; title: string }

export default async function Page() {
  const res = await fetch("https://example.com/api/posts", { next: { revalidate: 60 } })
  const posts = await json<Post[]>(res)
  return (
    <main style={{ display: "grid", gap: 8 }}>
      <h1>Posts</h1>
      <ul>{posts.map(p => <li key={p.id}>{p.title}</li>)}</ul>
    </main>
  )
}

Önbellek denetimleri

Tamamen dinamik istekler için cache: "no-store" kullanın; yeniden oluşturmayı N saniye sonra gerçekleştirmek için next.revalidate kullanın.

// app/page.tsx (server)
export default async function Page() {
  const res = await fetch("https://example.com/api/now", { cache: "no-store" })
  const data = await res.json() as { now: string }
  return <pre>{JSON.stringify(data, null, 2)}</pre>
}

// Alternative: revalidate per request
// fetch(url, { next: { revalidate: 5 } })

Sunucu Eylemi modülü

Modüle (veya işlevin içine) "use server" ekleyin. Sunucu Eylemleri sunucuda çalışır ve yalnızca sunucuda kullanılabilen API'leri çağırabilir; ardından revalidatePath çalıştırabilir.

// app/actions.ts
"use server"
import { revalidatePath } from "next/cache"

export async function createPost(form: FormData): Promise<{ id: string }> {
  const title = String(form.get("title") || "")
  if (!title) throw new Error("title required")
  // pretend DB insert
  const id = Math.random().toString(36).slice(2)
  revalidatePath("/")
  return { id }
}

Eylem kullanan istemci formu

Sunucu Eylemini bir formun action özelliğine bağlayın. Bekleme arayüzünü göstermek için useTransition kullanın. Türler eylemin imzasından aktarılır.

"use client"
import { useTransition } from "react"
import { createPost } from "../actions"

export default function NewPost() {
  const [pending, start] = useTransition()

  const onSubmit = async (formData: FormData) => {
    await createPost(formData)
  }

  return (
    <form action={(fd) => start(() => onSubmit(fd))} style={{ display: "grid", gap: 8 }}>
      <input name="title" placeholder="Title" />
      <button disabled={pending}>{pending ? "Creating…" : "Create"}</button>
    </form>
  )
}

İpuçları ve güvenlik

İpuçları:

  • Gizli bilgiler için sunucudan veri almayı tercih edin; sonuçları özellik olarak aktarın.
  • Eylemlerden türü belirtilmiş hatalar fırlatın; bunları arayüzde sınırlarla ele alın.
  • Değişikliklerden sonra etkilenen yolları yeniden doğrulayın.

Sunucu Eylemi tür kontrolü

Hızlı kontrol: Bir işlevi Sunucu Eylemi olarak nasıl işaretler ve türleri korursunuz?

Özet

Özet: JSON'ın kodunu türü belirtilmiş bir yardımcıyla çözün, no-store veya revalidate seçimini bilinçli yapın ve güvenli şekilde değişiklik yapmak ve yeniden doğrulamak için türü belirtilmiş Sunucu Eylemlerini kullanın.

Sıkça Sorulan Sorular

“Veri getirme ve eylem türlerini belirleme” dersi ücretsiz mi?

Evet — “Veri getirme ve eylem türlerini belirleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 3 dersten oluşur.

“Veri getirme ve eylem türlerini belirleme” dersinde ne öğreneceğim?

Sunucuda türleri belirlenmiş JSON ile veri getirin, önbelleğe alma/yeniden doğrulamayı denetleyin ve formlar ile değişiklikler için türleri belirlenmiş Sunucu Eylemleri oluşturun. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.

“Veri getirme ve eylem türlerini belirleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. App Router türleri; sunucu ve istemci bileşenleri
  2. Veri getirme ve eylem türlerini belirleme
  3. Ortam türlerini belirleme ve yapılandırma
← TypeScript Academy Sayfasına Dön