A Next szerverműveleteivel egyszerű a munka áthelyezése az ügyfelekről a szerverre.
A Next.js 13.4-es kiadása stabil App routerrel és szerverműveletekkel adatmutációt végezhet. Ez a funkció abszolút játékmódosító, mert lehetővé teszi, hogy teljes mértékben a szerver összetevőiből hajtson végre adatmutációkat. Ez számos előnnyel jár olyan területeken, mint a sebesség, a biztonság és az alkalmazás általános teljesítménye.
Ismerje meg, mik azok a szerverműveletek, és hogyan használhatja ezt az új funkciót a Next.js alkalmazásban.
Mik azok a szerverműveletek?
A kiszolgálóműveletek lehetővé teszik, hogy egyszeri kiszolgálóoldali funkciókat írjon közvetlenül a szerverösszetevők mellé. Ez óriási, mert többé nem kell API-útvonalakat írnia űrlapok beküldésekor vagy bármilyen más adatmutáció végrehajtása során, pl. GraphQL adatmutációk.
Lehetnek olyan függvényei, amelyek futnak a kiszolgálón, és ezután meghívhatja őket az ügyfél- vagy szerverkomponensekből. Ez egy alfa funkció a Next.js 13.4-ben, és a React Actionsre épül. A kiszolgálóműveletek használata csökkentett ügyféloldali JavaScript-kódot eredményez, és segíthet fokozatosan továbbfejlesztett űrlapok létrehozásában.
Példa szerver műveletekre
Szerverműveletekkel mutációkat hajthat végre a Next.js-ben, a szerveren. Tekintse meg ezt az új funkciót egy példa Next.js oldalon, amely egy űrlapot jelenít meg, amely lehetővé teszi a bejegyzés létrehozását.
Íme az import:
import Link tól től"következő/link"
import FormGroup tól től"@/components/FormGroup"
import { revalidateTag } tól től"következő/gyorsítótár"
import { átirányítás } tól től"következő/navigáció"
Most a bejegyzés létrehozásához szükséges kód. Ez a funkció egy szerverművelet; fut a szerveren, és elküldi a bejegyzés címét és törzsét az API-nak (amely létrehozza a bejegyzést az adatbázisban):
asyncfunkcióCreatePost(adat) {
"szerver használata"
const title = data.get("cím")
const body = data.get("test")várja fetch(" http://127.0.0.1/posts", {
fejléc: {"Tartalom típus": "alkalmazás/json"},
módszer: POST,
test: JSON.stringify({title, body})
})
revalidateTag("bejegyzések")
redirect("/")
}
Ez a funkció megkapja a bejegyzés címét és törzsét, amelyet elküld a következőnek /posts végpont POST-kéréssel. Ezután arra kényszeríti a gyorsítótárat, hogy frissítse a "posts" címkével társított tartalmat, és visszairányítja a kezdőlapra.
Íme egy űrlap az új bejegyzés címének és törzsének összegyűjtésére:
exportalapértelmezett NewPostForm() {
Visszatérés (