Descărcarea lucrărilor de la clienți pe server este ușoară cu acțiunile serverului Next.

Versiunea 13.4 a Next.js a venit cu un router de aplicație stabil și capacitatea de a face mutații de date cu acțiunile serverului. Această caracteristică este o schimbare absolută a jocului, deoarece vă permite să efectuați mutații de date în întregime din componentele serverului. Acest lucru aduce o serie de beneficii în domenii precum viteza, securitatea și performanța generală a aplicației.

Aflați ce sunt acțiunile serverului și cum să utilizați această nouă caracteristică în aplicația dvs. Next.js.

Ce sunt acțiunile serverului?

Acțiunile serverului vă permit să scrieți funcții unice de pe partea de server chiar alături de componentele serverului. Acest lucru este uriaș deoarece nu mai trebuie să scrieți rute API atunci când trimiteți formulare sau faceți orice alt tip de mutație de date, inclusiv Mutații ale datelor GraphQL.

Puteți avea funcții care rulează pe serverul dvs. și apoi le puteți apela de la componentele client sau server. Aceasta este o funcție alfa în Next.js 13.4 și este construită pe lângă React Actions. Utilizarea acțiunilor serverului duce la reducerea JavaScript la nivelul clientului și vă poate ajuta să creați formulare îmbunătățite progresiv.

instagram viewer

Exemplu de acțiuni ale serverului

Cu acțiuni de server, puteți efectua mutații în interiorul Next.js, pe server. Aruncați o privire la această nouă caracteristică cu un exemplu de pagină Next.js care redă un formular permițându-vă să creați o postare.

Iată importurile:

import Legătură din„următorul/link”
import FormGroup din„@/components/FormGroup”
import { revalidateTag } din„următorul/cache”
import { redirecționare } din„următorul/navigație”

Acum pentru codul pentru a crea postarea. Această funcție este o acțiune de server; rulează pe server și trimite titlul și corpul postării către API (care creează postarea în baza de date):

asincronfuncţiecreatePost(date) {
"utilizați serverul"
const titlu = data.get("titlu")
const body = data.get("corp")

așteaptă aduce(" http://127.0.0.1/posts", {
antet: {"Tipul de conținut": "aplicație/json"},
metoda: POST,
corp: JSON.stringify({titlu, corp})
})

revalidateTag("postări")
redirecţiona("/")
}

Această funcție primește titlul și corpul postării pe care apoi le trimite către /posts punct final printr-o solicitare POST. Apoi forțează memoria cache să reîmprospăteze conținutul asociat cu eticheta „posts” și redirecționează înapoi la pagina de pornire.

Iată un formular pentru a colecta titlul și corpul postării noi:

exportMod implicit NewPostForm() {
întoarcere (