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.

instagram viewer

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 (