Formular
Die <Form>-Komponente erweitert das HTML-<form>-Element um Client-seitige Navigation bei Übermittlung und progressive Verbesserung.
Sie ist besonders nützlich für Formulare, die URL-Suchparameter aktualisieren, da sie den Boilerplate-Code reduziert, der für die oben genannten Funktionen benötigt wird.
Grundlegende Verwendung:
import Form from 'next/form'
export default function Page() {
return (
<Form action="/search">
{/* Bei Übermittlung wird der Eingabewert an
die URL angehängt, z.B. /search?query=abc */}
<input name="query" />
<button type="submit">Submit</button>
</Form>
)
}import Form from 'next/form'
export default function Search() {
return (
<Form action="/search">
{/* Bei Übermittlung wird der Eingabewert an
die URL angehängt, z.B. /search?query=abc */}
<input name="query" />
<button type="submit">Submit</button>
</Form>
)
}Referenz
Das Verhalten der <Form>-Komponente hängt davon ab, ob der action-Prop einen string oder eine function erhält.
- Wenn
actionein String ist, verhält sich<Form>wie ein natives HTML-Formular mitGET-Methode. Die Formulardaten werden als Suchparameter in die URL kodiert, und bei Übermittlung wird zur angegebenen URL navigiert. Zusätzlich führt Next.js folgendes durch:- Führt eine Client-seitige Navigation anstelle eines vollständigen Seiten-Neuladens durch, was gemeinsame UI und Client-seitigen Zustand erhält.
action (string) Props
Wenn action ein String ist, unterstützt die <Form>-Komponente folgende Props:
| Prop | Beispiel | Typ | Erforderlich |
|---|---|---|---|
action | action="/search" | string (URL oder relativer Pfad) | Ja |
replace | replace={false} | boolean | - |
scroll | scroll={true} | boolean | - |
action: Die URL oder der Pfad, zu dem bei Formularübermittlung navigiert werden soll.- Ein leerer String
""navigiert zur gleichen Route mit aktualisierten Suchparametern.
- Ein leerer String
replace: Ersetzt den aktuellen Verlaufseintrag anstatt einen neuen zum Browserverlauf hinzuzufügen. Standard istfalse.scroll: Steuert das Scrollverhalten während der Navigation. Standard isttrue, was bedeutet, dass zum Anfang der neuen Route gescrollt wird und die Scrollposition für Vor- und Zurück-Navigation beibehalten wird.
Einschränkungen
onSubmit: Kann zur Behandlung von Formularübermittlungslogik verwendet werden. Der Aufruf vonevent.preventDefault()überschreibt jedoch das<Form>-Verhalten wie die Navigation zur angegebenen URL.method,encType,target: Werden nicht unterstützt, da sie das<Form>-Verhalten überschreiben.- Ähnlich können
formMethod,formEncTypeundformTargetverwendet werden, um diemethod-,encType- undtarget-Props zu überschreiben, wodurch das native Browserverhalten wiederhergestellt wird. - Wenn Sie diese Props benötigen, verwenden Sie stattdessen das HTML-
<form>-Element.
- Ähnlich können
<input type="file">: Die Verwendung dieses Eingabetyps bei einer String-actionentspricht dem Browserverhalten, indem der Dateiname anstelle des Dateiobjekts übermittelt wird.