表单 (Form)
<Form>
组件扩展了 HTML <form>
元素的功能,提供 客户端导航 提交以及 渐进增强 特性。
对于需要更新 URL 搜索参数的表单特别有用,因为它减少了实现上述功能所需的样板代码。
基本用法:
参考文档
<Form>
组件的行为取决于 action
属性接收的是 string
还是 function
。
- 当
action
为 字符串 时,<Form>
行为类似于使用GET
方法的原生 HTML 表单。表单数据会被编码为 URL 搜索参数,提交时导航到指定 URL。此外 Next.js 会:- 提交时执行 客户端导航 (client-side navigation) 而非整页刷新,保留共享 UI 和客户端状态
action
(字符串) 属性
当 action
为字符串时,<Form>
组件支持以下属性:
属性 | 示例 | 类型 | 必填 |
---|---|---|---|
action | action="/search" | string (URL 或相对路径) | 是 |
replace | replace={false} | boolean | - |
scroll | scroll={true} | boolean | - |
action
:表单提交时要导航到的 URL 或路径- 空字符串
""
会导航到相同路由但更新搜索参数
- 空字符串
replace
:替换当前历史记录而非添加新记录到 浏览器历史 栈。默认为false
scroll
:控制导航时的滚动行为。默认为true
,即滚动到新路由顶部,并在前进/后退导航时保持滚动位置