0Pricing
React Academy · Lekcja

Progresywne ulepszanie za pomocą Server Actions

Zbudują Państwo formularze działające bez JavaScriptu za pomocą Server Actions, a następnie wzbogacą je o funkcje Reacta po załadowaniu JS.

Progresywne ulepszanie za pomocą Server Actions to bezpłatna lekcja React Academy na CoddyKit. To lekcja 4 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 jest progresywne ulepszanie

Progresywne ulepszanie to strategia tworzenia stron internetowych, w której zaczyna się od działającej podstawy HTML, a następnie dodaje się do niej możliwości JavaScriptu. Podstawowe funkcje działają u wszystkich użytkowników, także u osób z wyłączonym JavaScriptem, wolnym połączeniem lub korzystających z technologii asystujących, natomiast użytkownicy z włączonym JavaScriptem otrzymują rozszerzone doświadczenie.

Podstawa bez JavaScriptu

Formularz z atrybutem action={serverAction} działa jako pełnoekranowe żądanie HTML POST nawet bez JavaScriptu. Przeglądarka wysyła formularz, serwer wykonuje akcję, a następnie zwraca zaktualizowaną stronę HTML. To ten sam mechanizm, który obsługuje formularze internetowe od 1995 roku — Server Actions w React są z założenia z nim zgodne.

Walidacja po stronie serwera bez JavaScriptu

Gdy JavaScript jest niedostępny, walidacja musi odbywać się na serwerze. Server Action sprawdza dane formularza, a jeśli walidacja się nie powiedzie, zwraca stan błędu. Serwer ponownie renderuje stronę z komunikatami o błędach osadzonymi w kodzie HTML. Użytkownik widzi błędy bez uruchamiania jakiegokolwiek JavaScriptu po stronie klienta.

Warstwa ulepszeń JavaScriptu

Gdy React przeprowadza hydratację strony, przechwytuje wysyłanie formularzy i obsługuje je jako asynchroniczne wywołania Server Action zamiast żądań POST przeładowujących całą stronę. Użytkownik otrzymuje aktualizację bezpośrednio w miejscu, bez przeładowania strony, widoczny stan oczekiwania oraz optymistyczny interfejs — wszystko to bez zmiany bazowej akcji ani struktury formularza.

Wzorzec bezpieczny dla hydratacji

Serwer renderuje formularz z początkowym stanem osadzonym w kodzie HTML. Podczas hydratacji React przejmuje ten początkowy stan bez powodowania migotania ani niezgodności. Hook useActionState został zaprojektowany tak, aby poprawnie uzgadniać początkowy stan wyrenderowany przez serwer ze stanem podczas hydratacji po stronie klienta.

Tranzycje Reacta zapewniające natychmiastowe działanie

Tranzycje Reacta pozwalają zachować interaktywność interfejsu podczas wywołania Server Action. Owijając wysłanie formularza w tranzycję, umożliwiamy Reactowi nadanie niższego priorytetu komunikacji z serwerem i zachowanie responsywności strony. Dzięki temu doświadczenie rozszerzone o JavaScript wydaje się znacznie szybsze niż przeładowanie całej strony.

Porównanie UX

Bez JavaScriptu: użytkownik klika przycisk wysyłania, przeglądarka wysyła pełne żądanie POST, a serwer odpowiada nową stroną HTML (pojawia się krótkie białe mignięcie, a pozycja przewijania zostaje zresetowana). Z JavaScriptem: React przechwytuje żądanie, akcja jest wykonywana asynchronicznie, a tylko zmienione fragmenty strony są aktualizowane w miejscu — bez mignięcia i bez resetowania pozycji przewijania.

Indeksowanie przez wyszukiwarki

Progresywne ulepszanie pomaga robotom wyszukiwarek, które mogą nie wykonywać JavaScriptu. Strona wyszukiwania lub filtrowania oparta na formularzu, działająca jako pełnoekranowy formularz HTML, może być indeksowana i przeszukiwana przez roboty. Wyniki renderowane przez serwer oznaczają, że robot widzi rzeczywistą treść, a nie puste elementy div oczekujące na JavaScript.

Korzyści w zakresie dostępności

Czytniki ekranu i technologie asystujące najlepiej działają z semantycznym kodem HTML. Formularz z progresywnym ulepszaniem wykorzystuje prawdziwe elementy <form>, <input> i <button>, które technologie asystujące rozumieją natywnie. JavaScript dodaje dynamiczne regiony ARIA do ogłaszania błędów, rozszerzając dostępną podstawę zamiast ją zastępować.

Niska jakość połączenia i odporność sieciowa

W przypadku niestabilnych sieci pakiety JavaScriptu mogą nie załadować się poprawnie. Strona z progresywnym ulepszaniem nadal działa w podstawowym zakresie. Ta odporność jest szczególnie ważna dla użytkowników korzystających z połączeń mobilnych na obszarach o słabym zasięgu oraz w regionach, w których warunki sieciowe znacznie się zmieniają.

Kiedy stosować progresywne ulepszanie

Progresywne ulepszanie jest najbardziej wartościowe w przypadku formularzy dostępnych publicznie: rejestracji, kontaktu, wyszukiwania i finalizacji zakupu. Wewnętrzne panele z rozbudowaną interaktywnością mogą go nie potrzebować. Należy stosować je świadomie tam, gdzie kluczowe są maksymalny zasięg i niezawodność, na przykład na stronach marketingowych, w handlu internetowym i w procesach wdrażania nowych użytkowników.

Definicja progresywnego ulepszania

Jaka jest podstawowa zasada progresywnego ulepszania?

Podsumowanie lekcji

Progresywne ulepszanie oznacza, że formularz działa jako zwykłe żądanie HTML POST bez JavaScriptu. Server Actions obsługują to natywnie: action={serverAction} umożliwia wysłanie formularza jako żądania POST przeładowującego całą stronę. Następnie hydratacja Reacta przekształca formularz w asynchroniczne aktualizacje w miejscu ze stanami oczekiwania. Takie podejście przynosi korzyści w zakresie dostępności, SEO i działania przy słabym połączeniu, a jednocześnie zapewnia rozbudowane doświadczenie z użyciem JavaScriptu.

Często zadawane pytania

Czy lekcja „Progresywne ulepszanie za pomocą Server Actions” jest bezpłatna?

Tak — pełny tekst „Progresywne ulepszanie za pomocą Server Actions” 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 „Progresywne ulepszanie za pomocą Server Actions”?

Zbudują Państwo formularze działające bez JavaScriptu za pomocą Server Actions, a następnie wzbogacą je o funkcje Reacta po załadowaniu JS. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Progresywne ulepszanie za pomocą Server Actions”?

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

  1. Server Actions w React 19 i Next.js
  2. Form Actions: zastępowanie tras API dla mutacji
  3. useActionState i useFormStatus
  4. Progresywne ulepszanie za pomocą Server Actions
← Powrót do React Academy