Le déchargement du travail des clients vers votre serveur est facile avec les actions de serveur de Next.

La version 13.4 de Next.js est livrée avec un routeur d'application stable et la possibilité d'effectuer une mutation de données avec des actions de serveur. Cette fonctionnalité change complètement la donne car elle vous permet d'effectuer des mutations de données entièrement à partir des composants du serveur. Cela apporte une foule d'avantages dans des domaines tels que la vitesse, la sécurité et les performances globales de l'application.

Découvrez ce que sont les actions du serveur et comment utiliser cette nouvelle fonctionnalité dans votre application Next.js.

Que sont les actions du serveur?

Les actions de serveur vous permettent d'écrire des fonctions uniques côté serveur juste à côté de vos composants de serveur. C'est énorme car vous n'avez plus besoin d'écrire des routes d'API lors de la soumission de formulaires ou de tout autre type de mutation de données, y compris Mutations de données GraphQL.

instagram viewer

Vous pouvez avoir des fonctions qui s'exécutent sur votre serveur, et vous pouvez ensuite les appeler à partir de composants client ou serveur. Il s'agit d'une fonctionnalité alpha de Next.js 13.4, et elle est construite au-dessus de React Actions. L'utilisation d'actions de serveur réduit le code JavaScript côté client et peut vous aider à créer des formulaires progressivement améliorés.

Exemple d'actions de serveur

Avec les actions du serveur, vous pouvez effectuer des mutations dans Next.js, sur le serveur. Jetez un œil à cette nouvelle fonctionnalité avec un exemple de page Next.js qui affiche un formulaire vous permettant de créer une publication.

Voici les importations :

importer Lien depuis"suivant/lien"
importer GroupeFormulaire depuis"@/composants/FormGroup"
importer { revalidateTag } depuis"suivant/cache"
importer { rediriger } depuis"suivant/navigation"

Passons maintenant au code pour créer le message. Cette fonction est une action du serveur; il s'exécute sur le serveur et envoie le titre et le corps du message à l'API (qui crée le message dans la base de données) :

asynchronefonctioncreatePost(données) {
"utiliser le serveur"
constante titre = data.get("titre")
constante corps = data.get("corps")

attendre aller chercher(" http://127.0.0.1/posts", {
entête: {"Type de contenu": "applications/json"},
méthode: POST,
corps: JSON.stringify({titre, corps})
})

revalidateTag("des postes")
réorienter("/")
}

Cette fonction récupère le titre et le corps du message qu'elle envoie ensuite au /posts endpoint via une requête POST. Il force ensuite le cache à actualiser le contenu associé à la balise "posts" et le redirige vers la page d'accueil.

Voici un formulaire pour collecter le nouveau titre et le corps du message :

exporterdéfaut NouveauPostForm() {
retour (