关于 syncfusion-react-form-builder
这是一个用于在 React 中使用 Syncfusion Form Builder 创建、排查和扩展可编辑表单的 Claude 技能。它指导通过可视化设计器编写表单架构,并生成供 Form Renderer 使用的 JSON。
主要功能
- 01在 Vite React 应用中设置 Form Builder
- 02用 JSON 架构定义字段和布局
- 03配置工具箱、属性和模板
- 04预览、导入和导出架构
- 05定义验证规则和条件行为
适用场景
- 01创建初始 React 表单架构
- 02自定义可用字段和属性面板
- 03添加依赖下拉框或计算值
- 04导出前检查表单
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ react-ui-components-skills --skill syncfusion-react-form-builder安装后在 Claude Code 中输入/syncfusion-react-form-builder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/conditions.mddata-grid-features.mddependent-dropdown.mdexport-import.mdexpressions.mdfield-components-panel.mdform-schema.mdform-settings.mdgetting-started.mdmin-max-range.mdpreview-tab.mdproperty-panel.mdremote-data-binding-in-components.mdtemplates.mdvalidations.md详细介绍
Syncfusion React Form Builder
当用户需要使用 Syncfusion Form Builder 创建、排查问题或扩展可编辑的 React 表单时,请使用此技能。Form Builder 是一款可视化设计器,可生成由 schema 驱动的表单定义:用户可以将字段拖到画布上,在属性面板中进行配置,预览结果,并导出 schema 以供 Form Renderer 使用。
何时使用此技能
当用户需要执行以下操作时,请使用此技能:
- 创建 Vite React 应用并安装 Syncfusion Form Builder 包
- 渲染包含工具箱、画布、属性面板、代码视图和预览的可视化表单设计器
- 通过
schema属性加载初始表单 - 在
properties中定义字段,在layout中排列字段,并设置表单级settings - 配置 Form Builder 属性,例如导出、预览、持久化、RTL、模式、模板和工具箱项目
- 从 Basic、Advanced 和 Layout 工具箱类别中选择字段
- 自定义字段属性,添加或隐藏属性面板条目,并刷新设计器
- 定义自定义工具箱模板,并通过
setFieldValue同步模板值 - 处理字段拖动开始、拖动经过、放置和属性更改事件
- 查看、复制、导入或导出生成的 JSON schema
- 准备包含验证、条件、表达式、依赖下拉列表、动态范围、远程数据或 Data Grid 字段的 schema
此技能用于设计和编辑表单。当主要任务是为最终用户渲染已完成的 schema、处理提交的值或配置渲染器表单操作时,请使用 React Form Renderer 技能。
文档与导航指南
组件 API 和事件
📄 阅读: references/getting-started.md
- 所有 Form Builder 属性、类型和默认值
- Simple 和 Developer 模式
schema、导出、预览、持久化、RTL、模板和工具箱配置
入门指南
📄 阅读: references/getting-started.md
- Vite 和 React 设置及 CSS 主题导入
- Form Builder 基本用法
- 将表单 schema 绑定到组件
- 用于创建表单的最小可运行示例
Schema 和初始表单设置
📄 首先阅读: references/form-schema.md
schema属性和根 schema 结构- 在
properties中定义字段,以及在layout中设置渲染顺序 - 表单设置、支持的控件和布局容器
- 将每个请求的字段与文档中对应的
widget和type匹配
当客户要求创建带有初始表单的 React Form Builder 时,请根据 references/getting-started.md 创建 Vite 和 React 组件设置,然后使用 references/form-schema.md 定义初始 schema。如果所需 schema 需要相应功能,请阅读以下参考资料:
- 验证规则: references/validations.md
- 条件行为: references/conditions.md
- 计算值: references/expressions.md
- 依赖下拉列表: references/dependent-dropdown.md
- 动态数值/日期/时间范围限制: references/min-max-range.md
- 远程下拉列表、多选或复选框组数据: references/remote-data-binding-in-components.md
- Data Grid 字段和数据源: references/data-grid-features.md
字段组件面板
📄 阅读: references/field-components-panel.md
- Fields 和 Templates 选项卡
- Basic、Advanced 和 Layout 类别
- 搜索/筛选行为和工具箱自定义
- 自定义模板库和
formTemplates
属性面板
📄 阅读: references/property-panel.md
- 面板在选中字段时显示的时机
- 显示、验证、条件、布局和数据选项卡
setProperty和getProperty的用法- 自动保存和属性刷新行为
预览和 JSON
📄 阅读: references/preview-tab.md
- 预览选项卡的工作流
- 使用
enablePreview禁用预览 - JSON 架构审查和复制操作
模板
📄 阅读: references/templates.md
- 使用
toolboxItems定义自定义工具箱模板 - 导出时使用
templateId - 将第三方组件映射到架构
表单设置
📄 阅读: references/form-settings.md
- 全局表单标题和宽度
- 隐藏标签、尺寸和浮动标签类型等布局级设置
- 应用表单级配置,而不影响单个字段
导出和导入
📄 阅读: references/export-import.md
- 导出架构,以便 Form Renderer 重用
- 将现有架构导入回 Form Builder
- 使用
allowExport禁用导出
快速开始
- 安装软件包:
npm install @syncfusion/ej2-react-form-builder @syncfusion/ej2-material3-theme
- 导入组件并绑定初始架构:
import { FormBuilderComponent } from '@syncfusion/ej2-react-form-builder';
import '@syncfusion/ej2-material3-theme/styles/material3.css';
const formSchema = {
version: '0.1.0',
properties: {
emailAddress: {
id: 'textbox_1785491685456_167',
name: 'emailAddress',
type: 'string',
label: 'Email Address',
textboxType: 'email',
required: true,
placeholder: 'Enter your email',
widget: 'textbox'
}
},
layout: [{ type: 'field', propertyId: 'emailAddress' }],
settings: { name: 'Untitled Form' }
};
export default function App() {
return <FormBuilderComponent schema={formSchema} />;
}
- 使用
npm run dev启动 Vite 应用,然后使用工具箱和属性面板编辑表单。请阅读 references/getting-started.md,了解项目创建、主题设置和完整的初始配置。
常见模式
自定义工具箱
使用 toolboxCategories 控制工具箱中显示哪些字段类型,以及它们归属的类别。
import { FormBuilderComponent } from '@syncfusion/ej2-react-form-builder';
import { ComponentCategory, FormWidgetType } from '@syncfusion/ej2-form-builder';
const toolboxCategories = [
{
category: ComponentCategory.Basic,
items: [FormWidgetType.Textbox, FormWidgetType.Textarea]
},
{
category: ComponentCategory.Advanced,
items: [FormWidgetType.Date, FormWidgetType.DateRange]
}
];
动态添加属性
使用 setProperty 为控件添加自定义属性,并使用 refresh() 更新面板。
formBuilderRef.current?.setProperty(FormWidgetType.Textarea, {
key: 'enableRtl',
label: 'Enable RTL',
type: 'boolean',
default: false
});
注册自定义模板
在 toolboxItems 中定义第三方自定义控件,并在值发生变化时调用 setFieldValue。
<FormBuilderComponent
toolboxItems={[{ type: FormWidgetType.Textbox, template: inputTemplate }]}
/>;
使用预览和 JSON 输出
切换到“预览”选项卡以验证布局和交互,然后打开 JSON 选项卡检查导出的架构,并复制以供 Form Renderer 使用。
常见模式
- 将每个字段保存在
properties中,并在layout中通过其propertyId引用。 - 为每个字段指定稳定且唯一的
name和id;在条件、表达式和依赖数据中使用文档说明的id和name引用。 - 根据 references/form-schema.md 中受支持的架构清单,为每个请求的字段匹配
widget和type。 - 使用
toolboxCategories或toolboxItems控制可在可视化工具箱中使用的字段。 - 使用
formTemplates创建可重用的完整架构,并使用自定义工具箱模板定义第三方控件。 - 在预览中验证表单,检查 JSON 选项卡,并仅在架构和布局正确后导出。
- 使用 API 事件负载获取设计器交互状态;使用 Form Renderer 事件获取运行时值和提交行为。
实施检查清单
构建或修复 Form Builder 表单时,请确认:
- 已安装 React 软件包和主题,并已导入
FormBuilderComponent schema值是对象、JSON 字符串或受支持的架构实例- 每个字段都有唯一的
name、稳定的id、受支持的widget和匹配的type - 每个
layout字段节点都引用有效的propertyId - 布局容器保留在
layout中,其子字段保留在properties中 - 验证、条件、表达式、范围和数据源均使用文档说明的引用结构
- 自定义模板使用
setFieldValue更新 Form Builder 状态 - 根据所需工作流启用或禁用预览和导出
- 自定义组件引用采用文档说明的 React
useRef模式
典型工作流
- 首先创建基础架构,并将其加载到构建器中。
- 使用工具箱分类和预定义模板来组织表单设计。
- 在右侧面板中编辑字段属性,以设置验证、布局和显示行为。
- 导出架构前,先在预览中验证最终表单。
- 之后重新导入架构,以继续编辑或调整生成的表单。