Server Actions w React 19 i Next.js
Poznają Państwo sposób wykonywania Server Actions na serwerze, zachowywania kontekstu serwera i zwracania danych do klienta.
Server Actions w React 19 i Next.js to bezpłatna lekcja React Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.
Czym są Server Actions
Server Actions to funkcje asynchroniczne wykonywane na serwerze, a nie w przeglądarce. Są oznaczane dyrektywą 'use server' umieszczoną na początku pliku lub na początku treści funkcji. Sygnalizuje ona frameworkowi, że dana funkcja nigdy nie może być wykonywana po stronie klienta.
Dostęp do kontekstu serwera
Ponieważ Server Actions są uruchamiane na serwerze, mają dostęp do pełnego kontekstu serwera: połączeń z bazą danych, sekretów środowiskowych, danych sesji i zasobów systemu plików. To zasadniczo różni je od komponentów klienckich, które mają dostęp tylko do tego, co udostępnia przeglądarka.
Transport HTTP od kulis
Gdy komponent kliencki wywołuje Server Action, Next.js automatycznie wykonuje żądanie HTTP POST do specjalnego punktu końcowego RSC. Framework obsługuje całą serializację argumentów i warstwę transportu, więc nie trzeba ręcznie pisać wywołań fetch() dla tych mutacji.
Nie jest potrzebna trasa API
Server Actions eliminują potrzebę korzystania z tras API w wielu scenariuszach obejmujących mutacje. Sama akcja jest punktem końcowym — logikę definiuje się raz jako funkcję serwerową, a następnie wywołuje bezpośrednio z komponentu klienckiego, tak jak lokalną funkcję.
Funkcja pierwszej klasy w React 19
Server Actions były początkowo koncepcją specyficzną dla Next.js, ale React 19 podnosi je do rangi funkcji pierwszej klasy Reacta. Oznacza to, że bundlery i frameworki inne niż Next.js mogą implementować ten sam wzorzec zgodnie ze specyfikacją Reacta.
Stabilność i dostępność
Server Actions są eksperymentalne w React 19 RC, ale od momentu wprowadzenia są stabilne w Next.js 14+ App Router. Jeśli buduje się dziś aplikację produkcyjną z użyciem Next.js App Router, Server Actions są w pełni obsługiwanym i zalecanym wzorcem.
Bezpieczeństwo: sekrety pozostają na serwerze
Jedną z najważniejszych właściwości bezpieczeństwa Server Actions jest to, że sekrety nigdy nie trafiają do przeglądarki. Zmienne środowiskowe, takie jak hasła do baz danych i klucze API używane wewnątrz Server Action, nigdy nie są dołączane do bundla klienckiego, ponieważ treść funkcji nigdy nie jest wysyłana do przeglądarki.
Formularze i Server Actions
Elementy formularza HTML przyjmują Server Action bezpośrednio za pośrednictwem atrybutu action: <form action={myServerAction}>. React przechwytuje przesłanie formularza i wywołuje Server Action z danymi formularza, umożliwiając wykonanie mutacji po stronie serwera bez dodatkowej obsługi JavaScript po stronie klienta.
Cykl żądania i odpowiedzi
Po uruchomieniu Server Action React serializuje argumenty akcji do treści żądania POST. Serwer je deserializuje, wykonuje funkcję, serializuje wartość zwracaną i odsyła ją z powrotem. Przez granicę mogą przechodzić tylko wartości, które można serializować (ciągi znaków, liczby, tablice i zwykłe obiekty).
Definiowanie Server Action
Server Action można zdefiniować na poziomie modułu w pliku, na którego początku znajduje się 'use server', albo wstawić ją bezpośrednio w Server Component, umieszczając 'use server' na początku funkcji asynchronicznej. Oba podejścia dają ten sam rezultat: funkcję, którą można wywoływać wyłącznie na serwerze.
Wywoływanie z komponentów klienckich
Komponenty klienckie importują i wywołują Server Actions tak samo jak zwykłe funkcje asynchroniczne. Składnia wywołania jest identyczna jak w przypadku lokalnej funkcji asynchronicznej, ale wykonanie odbywa się w całości na serwerze. Ta abstrakcja pozwala zachować przejrzystość komponentów klienckich i uniknąć powtarzalnego kodu związanego z fetch.
Pytanie dotyczące modelu bezpieczeństwa
Który z poniższych opisów najlepiej przedstawia model bezpieczeństwa Server Actions?
Podsumowanie lekcji
Server Actions to asynchroniczne funkcje wykonywane po stronie serwera, oznaczone przez 'use server'. Zachowują dostęp do kontekstu serwera, takiego jak połączenia z bazą danych i sekrety środowiskowe. Next.js automatycznie obsługuje transport HTTP, a React 19 udostępnia je jako funkcję niezależną od frameworka. Formularze mogą korzystać z nich bezpośrednio za pomocą atrybutu action, a sekrety znajdujące się wewnątrz tych funkcji nigdy nie trafiają do przeglądarki.
Często zadawane pytania
Czy lekcja „Server Actions w React 19 i Next.js” jest bezpłatna?
Tak — pełny tekst „Server Actions w React 19 i Next.js” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Server Actions w React 19 i Next.js”?
Poznają Państwo sposób wykonywania Server Actions na serwerze, zachowywania kontekstu serwera i zwracania danych do klienta. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć React Academy?
Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Server Actions w React 19 i Next.js”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?
Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Server Actions w React 19 i Next.js
- Form Actions: zastępowanie tras API dla mutacji
- useActionState i useFormStatus
- Progresywne ulepszanie za pomocą Server Actions