Přesunutí práce z klientů na váš server je snadné díky akcím serveru Next.
Vydání 13.4 Next.js přišlo se stabilním App routerem a schopností provádět mutaci dat pomocí akcí serveru. Tato funkce je absolutní změnou hry, protože vám umožňuje provádět mutace dat výhradně ze serverových komponent. To přináší řadu výhod v oblastech, jako je rychlost, bezpečnost a celkový výkon aplikace.
Zjistěte, co jsou akce serveru a jak tuto novou funkci používat ve vaší aplikaci Next.js.
Co jsou akce serveru?
Akce serveru vám umožňují psát jednorázové funkce na straně serveru přímo vedle vašich serverových komponent. To je obrovské, protože již nemusíte psát trasy API při odesílání formulářů nebo provádění jakéhokoli jiného druhu mutace dat, včetně Mutace dat GraphQL.
Můžete mít funkce, které běží na vašem serveru, a pak je můžete volat z klientských nebo serverových komponent. Toto je funkce alfa v Next.js 13.4 a je postavena na React Actions. Použití akcí serveru vede k omezení JavaScriptu na straně klienta a může vám pomoci vytvářet postupně vylepšené formuláře.
Příklad akcí serveru
Pomocí akcí serveru můžete provádět mutace v souboru Next.js na serveru. Podívejte se na tuto novou funkci s příkladem stránky Next.js, která vykresluje formulář umožňující vytvořit příspěvek.
Zde jsou dovozy:
import Odkaz z"další/odkaz"
import FormGroup z"@/components/FormGroup"
import { revalidateTag } z"další/mezipaměť"
import { přesměrovat } z"další/navigace"
Nyní kód pro vytvoření příspěvku. Tato funkce je akcí serveru; běží na serveru a odešle název příspěvku a tělo do API (které vytvoří příspěvek v databázi):
asynchronnífunkcecreatePost(data) {
"použít server"
konst title = data.get("titul")
konst tělo = data.get("tělo")čekat vynést(" http://127.0.0.1/posts", {
záhlaví: {"Typ obsahu": "application/json"},
metoda: POST,
tělo: JSON.stringify({title, body})
})
revalidateTag("příspěvky")
přesměrovat("/")
}
Tato funkce získá název příspěvku a tělo, které pak odešle /posts koncový bod prostřednictvím požadavku POST. Poté donutí mezipaměť obnovit obsah spojený se značkou „posts“ a přesměruje zpět na domovskou stránku.
Zde je formulář pro vyzvednutí názvu a textu nového příspěvku:
vývoznívýchozí NewPostForm() {
vrátit se (