Werk van clients naar uw server verplaatsen is eenvoudig met de serveracties van Next.
De 13.4-release van Next.js kwam met een stabiele app-router en de mogelijkheid om gegevensmutaties uit te voeren met serveracties. Deze functie is een absolute game-wisselaar omdat u gegevensmutaties volledig vanaf servercomponenten kunt uitvoeren. Dit brengt tal van voordelen met zich mee op het gebied van snelheid, beveiliging en algehele prestaties van de app.
Ontdek wat serveracties zijn en hoe u deze nieuwe functie kunt gebruiken in uw Next.js-toepassing.
Wat zijn serveracties?
Met serveracties kunt u eenmalige functies aan de serverzijde naast uw servercomponenten schrijven. Dit is enorm omdat u niet langer API-routes hoeft te schrijven bij het indienen van formulieren of het uitvoeren van enige andere vorm van gegevensmutatie, inclusief GraphQL-gegevensmutaties.
U kunt functies hebben die op uw server worden uitgevoerd en u kunt ze vervolgens aanroepen vanuit client- of servercomponenten. Dit is een alfafunctie in Next.js 13.4 en is gebouwd bovenop React Actions. Het gebruik van serveracties leidt tot minder JavaScript aan de clientzijde en kan u helpen steeds verder verbeterde formulieren te maken.
Voorbeeld van serveracties
Met serveracties kunt u mutaties uitvoeren binnen Next.js, op de server. Bekijk deze nieuwe functie met een voorbeeld Next.js-pagina die een formulier weergeeft waarmee u een bericht kunt maken.
Dit zijn de invoer:
importeren Koppeling van"volgende/link"
importeren FormGroep van"@/componenten/FormGroup"
importeren { revalidateTag } van"volgende/cache"
importeren { omleiding } van"volgende/navigatie"
Nu voor de code om het bericht te maken. Deze functie is een serveractie; het draait op de server en stuurt de titel en body van het bericht naar de API (die het bericht in de database maakt):
asynchroonfunctiecreatePost(gegevens) {
"server gebruiken"
const titel = data.get("titel")
const body = data.get("lichaam")wachten ophalen(" http://127.0.0.1/posts", {
koptekst: {"Content-Type": "toepassing/json"},
methode: POST,
lichaam: JSON.stringify({titel, body})
})
opnieuw validerenTag("berichten")
omleiden("/")
}
Deze functie haalt de titel en body van het bericht op die vervolgens naar het /posts eindpunt via een POST-verzoek. Vervolgens dwingt het de cache om inhoud te vernieuwen die is gekoppeld aan de tag "posts", en wordt deze teruggeleid naar de startpagina.
Hier is een formulier om de titel en body van het nieuwe bericht te verzamelen:
exporterenstandaard NieuwPostForm() {
opbrengst (