Prebacivanje posla s klijenata na vaš poslužitelj jednostavno je s radnjama poslužitelja Next.

Izdanje Next.js 13.4 došlo je sa stabilnim usmjerivačem aplikacija i mogućnošću mutacije podataka s radnjama poslužitelja. Ova je značajka apsolutna promjena u igri jer vam omogućuje izvođenje mutacija podataka u potpunosti iz komponenti poslužitelja. To donosi mnoštvo prednosti u područjima kao što su brzina, sigurnost i ukupna izvedba aplikacije.

Naučite što su radnje poslužitelja i kako koristiti ovu novu značajku u svojoj aplikaciji Next.js.

Što su radnje poslužitelja?

Akcije poslužitelja omogućuju vam pisanje jednokratnih funkcija na strani poslužitelja uz vaše komponente poslužitelja. Ovo je ogromno jer više ne morate pisati API rute prilikom slanja obrazaca ili obavljanja bilo koje druge vrste mutacije podataka, uključujući GraphQL mutacije podataka.

Možete imati funkcije koje se izvode na vašem poslužitelju, a zatim ih možete pozvati s komponenti klijenta ili poslužitelja. Ovo je alfa značajka u Next.js 13.4 i izgrađena je na temelju React Actions. Korištenje radnji poslužitelja dovodi do smanjenog JavaScripta na strani klijenta i može vam pomoći u stvaranju postupno poboljšanih obrazaca.

instagram viewer

Primjer radnji poslužitelja

Radnjama poslužitelja možete izvršiti mutacije unutar Next.js, na poslužitelju. Pogledajte ovu novu značajku s primjerom Next.js stranice koja prikazuje obrazac koji vam omogućuje stvaranje objave.

Evo uvoza:

uvoz Veza iz"sljedeća/link"
uvoz FormGroup iz"@/components/FormGroup"
uvoz {revalidateTag} iz"sljedeća/predmemorija"
uvoz { preusmjeravanje } iz"sljedeća/navigacija"

Sada dolazi kod za izradu objave. Ova je funkcija radnja poslužitelja; pokreće se na poslužitelju i šalje naslov i tijelo objave API-ju (koji stvara objavu u bazi podataka):

asinkronifunkcijacreatePost(podaci) {
"koristi poslužitelj"
konst naslov = podaci.get("titula")
konst tijelo = data.get("tijelo")

čekati dohvati (" http://127.0.0.1/posts", {
Zaglavlje: {"Vrsta sadržaja": "aplikacija/json"},
metoda: POST,
tijelo: JSON.stringify({naslov, tijelo})
})

revalidateTag("postovi")
preusmjeriti ("/")
}

Ova funkcija dobiva naslov i tijelo posta koje zatim šalje na /posts krajnju točku putem POST zahtjeva. Zatim prisiljava predmemoriju da osvježi sadržaj povezan s oznakom "posts" i preusmjerava natrag na početnu stranicu.

Evo obrasca za prikupljanje naslova i tijela novog posta:

izvozzadano NewPostForm() {
povratak (