Formulaire
Le composant <Form>
étend l'élément HTML <form>
pour fournir une navigation côté client lors de la soumission, et une amélioration progressive.
Il est utile pour les formulaires qui mettent à jour les paramètres de recherche dans l'URL, car il réduit le code standard nécessaire pour atteindre les fonctionnalités ci-dessus.
Utilisation de base :
import Form from 'next/form'
export default function Page() {
return (
<Form action="/search">
{/* Lors de la soumission, la valeur de l'input sera ajoutée
à l'URL, par exemple /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">
{/* Lors de la soumission, la valeur de l'input sera ajoutée
à l'URL, par exemple /search?query=abc */}
<input name="query" />
<button type="submit">Submit</button>
</Form>
)
}
Référence
Le comportement du composant <Form>
dépend du fait que la prop action
reçoive une string
ou une function
.
- Lorsque
action
est une chaîne de caractères, le<Form>
se comporte comme un formulaire HTML natif utilisant une méthodeGET
. Les données du formulaire sont encodées dans l'URL en tant que paramètres de recherche, et lorsque le formulaire est soumis, il navigue vers l'URL spécifiée. De plus, Next.js :- Effectue une navigation côté client au lieu d'un rechargement complet de la page lorsque le formulaire est soumis. Cela préserve l'interface partagée et l'état côté client.
Props action
(string)
Lorsque action
est une chaîne de caractères, le composant <Form>
prend en charge les props suivantes :
Prop | Exemple | Type | Requis |
---|---|---|---|
action | action="/search" | string (URL ou chemin relatif) | Oui |
replace | replace={false} | boolean | - |
scroll | scroll={true} | boolean | - |
action
: L'URL ou le chemin vers lequel naviguer lorsque le formulaire est soumis.- Une chaîne vide
""
naviguera vers la même route avec les paramètres de recherche mis à jour.
- Une chaîne vide
replace
: Remplace l'état actuel de l'historique au lieu d'en ajouter un nouveau à la pile d'historique du navigateur. Par défautfalse
.scroll
: Contrôle le comportement de défilement pendant la navigation. Par défauttrue
, ce qui signifie qu'il défilera vers le haut de la nouvelle route et maintiendra la position de défilement pour les navigations avant et arrière.
Mises en garde
onSubmit
: Peut être utilisé pour gérer la logique de soumission du formulaire. Cependant, l'appel àevent.preventDefault()
remplacera le comportement de<Form>
, comme la navigation vers l'URL spécifiée.method
,encType
,target
: Ne sont pas pris en charge car ils remplacent le comportement de<Form>
.- De même,
formMethod
,formEncType
etformTarget
peuvent être utilisés pour remplacer respectivement les propsmethod
,encType
ettarget
, et leur utilisation reviendra au comportement natif du navigateur. - Si vous avez besoin d'utiliser ces props, utilisez plutôt l'élément HTML
<form>
.
- De même,
<input type="file">
: L'utilisation de ce type d'input lorsqueaction
est une chaîne de caractères correspondra au comportement du navigateur en soumettant le nom du fichier au lieu de l'objet fichier.