Scaricare il lavoro dai client al tuo server è facile con le azioni del server di Next.
La versione 13.4 di Next.js è arrivata con un router app stabile e la possibilità di eseguire la mutazione dei dati con le azioni del server. Questa funzione è un punto di svolta assoluto perché ti consente di eseguire mutazioni dei dati interamente dai componenti del server. Ciò comporta una serie di vantaggi in aree come velocità, sicurezza e prestazioni complessive dell'app.
Scopri cosa sono le azioni del server e come utilizzare questa nuova funzionalità nella tua applicazione Next.js.
Cosa sono le azioni del server?
Le azioni del server ti consentono di scrivere funzioni lato server una tantum insieme ai componenti del server. Questo è enorme perché non è più necessario scrivere percorsi API quando si inviano moduli o si esegue qualsiasi altro tipo di mutazione dei dati, incluso Mutazioni dei dati GraphQL.
Puoi avere funzioni che vengono eseguite sul tuo server e puoi quindi chiamarle dai componenti client o server. Questa è una funzionalità alfa in Next.js 13.4 ed è basata su React Actions. L'utilizzo delle azioni del server comporta una riduzione del codice JavaScript lato client e può aiutarti a creare moduli progressivamente migliorati.
Esempio di azioni del server
Con le azioni del server, puoi eseguire mutazioni all'interno di Next.js, sul server. Dai un'occhiata a questa nuova funzionalità con una pagina Next.js di esempio che visualizza un modulo che ti consente di creare un post.
Ecco le importazioni:
importare Collegamento da"successivo/collegamento"
importare FormGroup da"@/componenti/FormGroup"
importare { riconvalidaTag } da"successivo/cache"
importare { reindirizzare } da"successivo/navigazione"
Ora per il codice per creare il post. Questa funzione è un'azione del server; viene eseguito sul server e invia il titolo e il corpo del post all'API (che crea il post nel database):
asincronofunzionecreatePost(dati) {
"usa il server"
cost titolo = dati.get("titolo")
cost corpo = dati.get("corpo")aspetta andare a prendere(" http://127.0.0.1/posts", {
intestazione: {"Tipo di contenuto": "applicazione/json"},
metodo: POSTA,
corpo: JSON.stringify({titolo, corpo})
})
riconvalidaTag("post")
reindirizzare("/")
}
Questa funzione ottiene il titolo e il corpo del post che poi invia al /posts endpoint tramite una richiesta POST. Quindi forza la cache ad aggiornare il contenuto associato al tag "posts" e reindirizza alla home page.
Ecco un form per raccogliere il titolo e il corpo del nuovo post:
esportarepredefinito NewPostForm() {
ritorno (