Naudojant Next serverio veiksmus lengva perkelti darbą iš klientų į serverį.

13.4 „Next.js“ leidimas buvo su stabiliu programos maršruto parinktuvu ir galimybe atlikti duomenų mutaciją naudojant serverio veiksmus. Ši funkcija yra absoliutus žaidimo keitiklis, nes leidžia atlikti duomenų mutacijas tik iš serverio komponentų. Tai suteikia daug naudos tokiose srityse kaip greitis, saugumas ir bendras programos veikimas.

Sužinokite, kas yra serverio veiksmai ir kaip naudoti šią naują funkciją Next.js programoje.

Kas yra serverio veiksmai?

Serverio veiksmai leidžia įrašyti vienkartines serverio funkcijas kartu su serverio komponentais. Tai labai svarbu, nes jums nebereikia rašyti API maršrutų, kai pateikiate formas ar atliekate bet kokią kitą duomenų mutaciją, įskaitant GraphQL duomenų mutacijos.

Galite turėti funkcijas, kurios veikia jūsų serveryje, ir galite jas iškviesti iš kliento arba serverio komponentų. Tai yra „Next.js 13.4“ alfa funkcija ir ji sukurta remiantis „React Actions“. Naudojant serverio veiksmus sumažėja kliento pusės „JavaScript“ ir gali padėti sukurti palaipsniui patobulintas formas.

instagram viewer

Serverio veiksmų pavyzdys

Naudodami serverio veiksmus galite atlikti mutacijas serveryje esančioje Next.js viduje. Pažvelkite į šią naują funkciją su Next.js puslapio pavyzdžiu, kuriame pateikiama forma, leidžianti sukurti įrašą.

Štai importas:

importuoti Nuoroda "kitas/nuoroda"
importuoti FormGroup "@/components/FormGroup"
importuoti { revalidateTag } "kitas / talpykla"
importuoti { peradresuoti } "Kitas/navigacija"

Dabar įrašo kūrimo kodas. Ši funkcija yra serverio veiksmas; jis veikia serveryje ir siunčia įrašo pavadinimą bei turinį į API (kuri sukuria įrašą duomenų bazėje):

asyncfunkcijaCreatePost(duomenis) {
"naudoti serverį"
konst title = data.get("titulas")
konst body = data.get("kūnas")

laukti atnešti (" http://127.0.0.1/posts", {
antraštė: {"Turinio tipas": "application/json"},
metodas: POST,
kūnas: JSON.stringify({title, body})
})

revalidateTag("postai")
redirect ("/")
}

Ši funkcija gauna įrašo pavadinimą ir turinį, kurį siunčia į /posts galinį tašką per POST užklausą. Tada ji priverčia talpyklą atnaujinti turinį, susietą su „posts“ žyma, ir nukreipia atgal į pagrindinį puslapį.

Štai forma, skirta naujam įrašo pavadinimui ir turiniui rinkti:

eksportuotinumatytas NewPostForm() {
grąžinti (