Mit den Serveraktionen von Next können Sie ganz einfach Arbeit von Clients auf Ihren Server verlagern.
Die Version 13.4 von Next.js verfügte über einen stabilen App-Router und die Möglichkeit, Datenmutationen mit Serveraktionen durchzuführen. Diese Funktion ist ein absoluter Game-Changer, da Sie damit Datenmutationen vollständig über Serverkomponenten durchführen können. Dies bringt zahlreiche Vorteile in Bereichen wie Geschwindigkeit, Sicherheit und Gesamtleistung der App mit sich.
Erfahren Sie, was Serveraktionen sind und wie Sie diese neue Funktion in Ihrer Next.js-Anwendung verwenden.
Was sind Serveraktionen?
Mit Serveraktionen können Sie einmalige serverseitige Funktionen direkt neben Ihren Serverkomponenten schreiben. Das ist enorm, da Sie keine API-Routen mehr schreiben müssen, wenn Sie Formulare senden oder andere Arten von Datenmutationen durchführen GraphQL-Datenmutationen.
Sie können Funktionen haben, die auf Ihrem Server ausgeführt werden, und Sie können sie dann von Client- oder Serverkomponenten aufrufen. Dies ist eine Alpha-Funktion in Next.js 13.4 und basiert auf React Actions. Die Verwendung von Serveraktionen führt zu einer Reduzierung von clientseitigem JavaScript und kann Ihnen bei der Erstellung zunehmend verbesserter Formulare helfen.
Beispiel für Serveraktionen
Mit Serveraktionen können Sie Mutationen innerhalb von Next.js auf dem Server durchführen. Schauen Sie sich diese neue Funktion anhand einer Next.js-Beispielseite an, die ein Formular rendert, mit dem Sie einen Beitrag erstellen können.
Hier sind die Importe:
importieren Verknüpfung aus„Weiter/Link“
importieren Gruppe formen aus„@/components/FormGroup“
importieren { revalidateTag } aus„nächster/cache“
importieren { umleiten } aus„Weiter/Navigation“
Nun zum Code zum Erstellen des Beitrags. Diese Funktion ist eine Serveraktion; Es läuft auf dem Server und sendet den Titel und den Text des Beitrags an die API (die den Beitrag in der Datenbank erstellt):
asynchronFunktioncreatePost(Daten) {
„Server verwenden“
const title = data.get("Titel")
const body = data.get("Körper")erwarten bringen(" http://127.0.0.1/posts", {
Header: {"Inhaltstyp": „application/json“},
Methode: POST,
Körper: JSON.stringify({title, body})
})
revalidateTag(„Beiträge“)
umleiten("/")
}
Diese Funktion ruft den Titel und den Text des Beitrags ab und sendet ihn dann an den /posts Endpunkt über eine POST-Anfrage. Anschließend wird der Cache gezwungen, den mit dem Tag „Beiträge“ verknüpften Inhalt zu aktualisieren, und es wird zurück zur Startseite weitergeleitet.
Hier ist ein Formular zum Sammeln des neuen Beitragstitels und -texts:
ExportStandard NewPostForm() {
zurückkehren (