C

Form 表单

表单控件

表单容器,配合 FormField 实现数据收集、校验、提交。

何时使用

需要收集、校验、提交用户输入的结构化数据。

代码示例

基础用法

tsx
import { Form, FormItem, FormField } from "@/components/ui/form"

export function Basic() {
return (
  <Form>
    <FormItem>Content</FormItem>
  </Form>
)
}

样式变体

layout

layout说明默认
vertical
horizontal
inline

API / Props

Form

PropTypeDefault说明
classNamestring自定义样式类名
onSubmit() => voidCalled on submit with form data
errorsRecord<string, string>Validation errors map (field name -> error message)
...restReact.ComponentProps<"form">透传 <form> 原生属性

注意事项

  • Client Component: 使用 "use client",依赖 React hooks/状态,需在客户端渲染。
  • CVA 变体: 通过 class-variance-authority 管理样式变体,类型安全。变体对象可导出复用。
  • 复合组件: 包含 2 个子组件(FormItem, FormField),使用组合模式按需导入。
  • 原生属性: 继承所有 <form> 原生 HTML 属性。

📘 完整交互式示例与控件属性请查看 Storybook 文档