Formularze, które działają
Część sekcji Podstawy Next.js ścieżki React w Coddy. Lekcja 30 z 47.
W zwykłym HTML action formularza to adres URL, na który wysyła się żądanie POST. W Next.js możesz przekazać w jego miejsce funkcję:
import { addItem } from './actions';
<form action={addItem}>
<input name="text" />
<button type="submit">Add</button>
</form>Po przesłaniu formularza React wykonuje za Ciebie trzy rzeczy: zatrzymuje standardowe przesyłanie formularza przez przeglądarkę, które powoduje ponowne wczytanie strony, zbiera nazwane pola formularza w obiekcie FormData i wywołuje Twoją akcję, przekazując jej ten obiekt.
Zwróć uwagę na to, czego nie ma: brak onSubmit, brak event.preventDefault() i brak stanu. A ta strona nadal jest komponentem serwerowym: akcja to przekazywane dalej dane, a nie procedura obsługi zdarzenia, więc bez problemu przekracza granicę.
Jedna rzecz, na którą warto się przygotować: element został zapisany, ale lista na ekranie jeszcze się nie zmieni. Strona została już wyrenderowana na serwerze i nic nie kazało jej sprawdzić ponownie. Za dwie lekcje naprawisz to jedną linijką.
Wyzwanie
PoczątkującyLista zakupów ma pole wejściowe i przycisk, ale nic nie łączy ich z serwerem. Akcja jest już przygotowana w app/actions.js.
- W
app/page.jsxzaimportujaddItemz'./actions'. - Umieść pole wejściowe i przycisk w elemencie
<form>zid="add-form". - Ustaw w tym formularzu
action={addItem}.
Pozostaw name="text" pola wejściowego bez zmian: akcja odczytuje pole o tej nazwie.
Spróbuj swoich sił
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy Next.js
4Serwer i klient
Dwa rodzaje komponentówOdczytywanie błęduLinia „use client”Ograniczaj części klienckieSerwer wewnątrz klientaPodsumowanie: serwer i klient7Nawigacja po stronie klienta
Aktywny linkRouting programowyFiltrowanie za pomocą URLObsługa trasPodsumowanie: nawigacja2Routing i linki
Foldery to ścieżkiZagnieżdżone ścieżkiŁączenie stronDynamiczne ścieżkiStrony nie znalezionoPodsumowanie: routing3Układy i metadane
Układ głównyWspólna nawigacjaZagnieżdżone układyMetadane stronyDynamiczne metadanePodsumowanie: układy6Akcje serwerowe
Czym jest akcja serwerowaFormularze, które działająOdczytywanie danych formularzaOdświeżanie stronyPodsumowanie: akcje serwerowe