Preloženie práce z klientov na váš server je jednoduché s akciami servera Next.

Vydanie Next.js 13.4 prišlo so stabilným smerovačom aplikácií a schopnosťou meniť údaje pomocou akcií servera. Táto funkcia je absolútnou zmenou hry, pretože vám umožňuje vykonávať mutácie údajov výlučne zo serverových komponentov. To prináša množstvo výhod v oblastiach, ako je rýchlosť, bezpečnosť a celkový výkon aplikácie.

Zistite, čo sú akcie servera a ako používať túto novú funkciu vo svojej aplikácii Next.js.

Čo sú akcie servera?

Akcie servera vám umožňujú písať jednorazové funkcie na strane servera priamo popri komponentoch servera. Je to obrovské, pretože už nemusíte písať trasy API pri odosielaní formulárov alebo vykonávaní akéhokoľvek iného druhu mutácie údajov, vrátane Mutácie údajov GraphQL.

Môžete mať funkcie, ktoré bežia na vašom serveri a potom ich môžete volať z klientskych alebo serverových komponentov. Toto je funkcia alfa v Next.js 13.4 a je postavená na React Actions. Používanie akcií servera vedie k obmedzeniu JavaScriptu na strane klienta a môže vám pomôcť vytvárať postupne vylepšené formuláre.

instagram viewer

Príklad akcií servera

Pomocou akcií servera môžete vykonávať mutácie v súbore Next.js na serveri. Pozrite sa na túto novú funkciu s ukážkou stránky Next.js, ktorá vykresľuje formulár umožňujúci vytvoriť príspevok.

Tu sú dovozy:

importovať Odkaz od"ďalší/odkaz"
importovať FormGroup od"@/components/FormGroup"
importovať { revalidateTag } od"ďalší/vyrovnávacia pamäť"
importovať { presmerovať } od"ďalší/navigácia"

Teraz kód na vytvorenie príspevku. Táto funkcia je akciou servera; beží na serveri a odosiela názov príspevku a telo do API (ktoré vytvorí príspevok v databáze):

asyncfunkciucreatePost(údajov) {
"použiť server"
konšt title = data.get("titul")
konšt body = data.get("telo")

čakať priniesť (" http://127.0.0.1/posts", {
hlavička: {"Druh obsahu": "application/json"},
metóda: POST,
telo: JSON.stringify({title, body})
})

revalidateTag("príspevky")
presmerovať("/")
}

Táto funkcia získa názov príspevku a telo, ktoré potom odošle /posts koncový bod prostredníctvom požiadavky POST. Potom vynúti vyrovnávaciu pamäť, aby obnovila obsah spojený so značkou „posts“ a presmeruje späť na domovskú stránku.

Tu je formulár na získanie názvu a textu nového príspevku:

exportpredvolená NewPostForm() {
vrátiť (