作者指出多数 Next.js 表单问题的根源是误解了框架提供了什么、团队要自己造什么。Next.js 16 引入了第一方 Form 组件,把服务器优先的路径设为默认、有客户端能力时再渐进增强,从而显著缩小了原生 HTML 表单与生产级表单处理之间的鸿沟。正确模式是把 HTML 表单当地基、JavaScript 当增强层:无 JS 时走标准浏览器提交照样可用,JS 加载后再提升为即时反馈与乐观更新。作者据此主张团队可以删掉大部分自定义 form wrapper——导航状态、防重复提交、滚动恢复都由框架原生接管,而校验逻辑仍属于服务端 action。
🔑 核心要点
正确心智模型:把 HTML 表单当地基、JavaScript 当增强层——Next.js 16 Form 默认走服务器优先路径,无 JS 时标准浏览器提交可用、水合后再做渐进增强
Form 组件 API 极简:action 既接受 server action 函数(数据序列化为 FormData 传给它)也接受字符串 URL;replace/scroll/prefetch 三个 props 镜像 Link 组件,因为表单提交本质是一次导航事件