Capítulo 364 de 456
<Form> (next/form) estende o <form> HTML nativo para oferecer navegação client-side e progressive enhancement em submissões, reduzindo boilerplate para formulários que atualizam search params na URL.
action como string: <Form> se comporta como formulário HTML nativo com método GET — os dados viram search params na URL de destino, e Next.js faz navegação client-side (sem full reload) em vez de recarregar a página.replace: substitui o estado atual do histórico do navegador em vez de empurrar um novo (default false).scroll: controla comportamento de scroll na navegação (default true, sobe ao topo da nova rota).action="": navega para a mesma rota com os search params atualizados.import Form from 'next/form'
export default function Page() {
return (
<Form action="/search">
{/* On submission: /search?query=abc */}
<input name="query" />
<button type="submit">Submit</button>
</Form>
)
}
<Form> com action string, gerando navegação com search params automaticamente.| Prop | Exemplo | Tipo | Obrigatório |
|---|---|---|---|
action | action="/search" | string (URL ou path relativo) | Sim |
replace | replace={false} | boolean | - |
scroll | scroll={true} | boolean | - |
method, encType ou target: não são suportados, pois sobrescrevem o comportamento de <Form>; usar formMethod/formEncType/formTarget faz cair no comportamento nativo do browser. Se precisar desses atributos, use <form> HTML puro.event.preventDefault() em onSubmit: cancela a navegação/comportamento padrão do <Form>.<input type="file"> com action string: submete apenas o nome do arquivo, não o objeto File (mesmo comportamento de um form HTML nativo GET).<Form> só documenta aqui o comportamento com action string (método GET); comportamento com action função não está nesta página-fonte.<form> comum.<Form> frequentemente alimentam SSR de páginas de busca.