Przenoszenie pracy z klientów na serwer jest łatwe dzięki akcjom serwera Next.

Wersja 13.4 Next.js została dostarczona ze stabilnym routerem aplikacji i możliwością mutacji danych za pomocą działań serwera. Ta funkcja to absolutna rewolucja, ponieważ umożliwia przeprowadzanie mutacji danych w całości z komponentów serwera. Daje to wiele korzyści w obszarach takich jak szybkość, bezpieczeństwo i ogólna wydajność aplikacji.

Dowiedz się, czym są akcje serwera i jak korzystać z tej nowej funkcji w aplikacji Next.js.

Czym są akcje serwera?

Akcje serwera umożliwiają pisanie jednorazowych funkcji po stronie serwera bezpośrednio obok komponentów serwera. Jest to ogromne, ponieważ nie trzeba już pisać tras API podczas przesyłania formularzy lub wykonywania innego rodzaju mutacji danych, w tym Mutacje danych GraphQL.

Możesz mieć funkcje, które działają na twoim serwerze, a następnie możesz je wywoływać z komponentów klienta lub serwera. Jest to funkcja alfa w Next.js 13.4 i jest zbudowana na React Actions. Korzystanie z akcji serwera prowadzi do zmniejszenia liczby skryptów JavaScript po stronie klienta i może pomóc w tworzeniu stopniowo ulepszanych formularzy.

instagram viewer

Przykład akcji serwera

Dzięki akcjom serwera możesz wykonywać mutacje wewnątrz Next.js na serwerze. Przyjrzyj się tej nowej funkcji na przykładowej stronie Next.js, która renderuje formularz umożliwiający utworzenie posta.

Oto import:

import Połączyć z„następny/link”
import Grupa formularzy z"@/komponenty/Grupa formularzy"
import {revaldateTag} z„następny/pamięć podręczna”
import { przekierowanie } z„następny/nawigacja”

Teraz kod do utworzenia posta. Ta funkcja jest akcją serwera; działa na serwerze i wysyła tytuł i treść postu do API (które tworzy post w bazie danych):

asynchronicznyfunkcjonowaćutwórzPost(dane) {
„użyj serwera”
konst tytuł = dane.pobierz("tytuł")
konst treść = dane.pobierz("ciało")

czekać na aportować(" http://127.0.0.1/posts", {
nagłówek: {"Typ zawartości": "aplikacja/json"},
metoda: POST,
ciało: JSON.stringify({tytuł, treść})
})

rewalidacjaTag("posty")
przeadresować("/")
}

Ta funkcja pobiera tytuł posta i treść, które następnie wysyła do /posts punktu końcowego za pośrednictwem żądania POST. Następnie zmusza pamięć podręczną do odświeżenia treści powiązanej z tagiem „posts” i przekierowuje z powrotem na stronę główną.

Oto formularz do zbierania tytułu i treści nowego wpisu:

eksportdomyślny NewPostForm() {
powrót (