React 组件

UGForm 表单

组织字段语义、布局和状态,并通过跨框架规则完成同步或异步校验、提交与重置。

导入方式

按需从包入口导入组件,并在应用入口引入一次样式文件。

tsx
import {
  UGForm, UGFormField, UGFormItem, UGFormLabel,
  UGFormControl, UGFormDescription, UGFormMessage, useForm,
} from '@ug666/ui-react'

规则校验与提交

规则支持提交、变化和失焦触发;失焦只在离开整个字段区域时生效,异步校验期间暴露 loading 与 validating 状态。

3 到 20 个字符,失焦后检查是否可用。

尚未提交

布局

垂直布局适合常规表单;横向布局统一标签列;内联布局适合筛选和紧凑操作。

标签列保持固定宽度。

尺寸、禁用与字段状态

根表单统一配置控件密度与禁用状态;字段仍保留独立错误、成功和加载语义。

字段校验已通过。

属性与方法

属性类型默认值说明
UGForm size / disabledControlSize / booleanConfigProvider统一表单内控件尺寸和禁用状态,单个控件仍可显式覆盖。
UGForm layout'vertical' | 'horizontal' | 'inline''vertical'控制字段标签与控件的排列方式。
UGForm labelWidthstring | number'8rem'横向布局的标签列宽度。
UGForm labelPosition'top' | 'left' | 'right'由 layout 推导统一控制标签位于控件上方或左右两侧,字段可单独覆盖。
UGForm labelSuffixstring''统一追加在标签内容后的字符。
UGForm showRequiredMarkbooleantrue统一控制字段必填标记是否可见。
UGForm requiredMarkPosition'left' | 'right''left'控制必填标记位于标签文本哪一侧。
UGForm showMessage / inlineMessageboolean / booleantrue / false统一控制错误消息是否渲染以及是否使用行内布局。
UGForm controllerUseFormReturn接入 useForm 后自动同步字段错误、校验状态、必填规则、失焦触发和字段 DOM 注册。
UGFormField namestring必填字段名,同时作为未显式传值时的原生控件 name。
UGFormField errorstring字段错误信息,并同步 ARIA 与消息状态。
UGFormField required / statusboolean / 'default' | 'validating' | 'success'false / default字段必填标记与无错误时的过程状态。
UGFormControlReactElement必填为实际控件注入 id、name、aria-describedby、aria-invalid、aria-required 和校验状态。
FormRulesRecord<field, FormRule | FormRule[]>支持 required、类型、长度、范围、正则、触发时机和同步/异步自定义校验。
useForm validate / validateFieldasync method主动校验全部或指定字段,返回是否通过。
useForm handleSubmit(callback) => submitHandler阻止默认刷新、执行校验,仅在通过后调用业务提交。
useForm reset / resetFields / clearValidatemethod重置全部或指定字段,以及清除指定字段校验结果。
useForm setInitialValues(values) => void更新后续 reset/resetFields 使用的基线值,不直接覆盖当前编辑内容。
useForm getField(name) => HTMLElement | undefined取得已注册字段容器,供聚焦、测量和自定义定位使用。
useForm scrollToField / scrollToErrormethod定位指定字段或首个错误字段,支持自定义 ScrollIntoViewOptions。
useForm statetouched / dirtyFields / validatingFields / isDirty / isValid / isValidating提供表单交互、修改和逐字段校验状态。