跳到主要内容

Core Package

4.2.0 起,DynamicForm 新增 @whynotsnow/dynamic-form-core 包,用于承载不依赖 React consumer、Ant Design renderer 或默认字段组件的纯核心能力。

@whynotsnow/dynamic-form 仍是兼容主入口:它继续导出 DynamicFormCompiledDynamicForm、Provider、hooks、component registry、默认 AntD renderer、headless renderer 和 form adapters,同时 re-export core 公共 API。旧代码不需要迁移 import。

适合直接使用 core 的场景

  • 可视化配置系统保存前校验配置。
  • 后端或构建阶段把 schema/metadata 转换为标准 FormConfig
  • 在不渲染 React 表单的环境中运行 Rule Engine 或 Compiler。
  • 设计器预览、调试面板或测试中读取 Runtime inspection helpers。
  • 独立维护领域字段 module registry、schema adapter 或配置诊断。

core 包包含的 API

  • 配置处理:processFormConfig
  • 配置诊断:getFormConfigDiagnosticsvalidateFormConfig
  • Compiler:compileFormConfigModuleRegistryManagerdefaultModuleRegistry
  • Adapters:AdapterRegistryManageradaptModuleConfigscompileAdaptedFormConfig、JsonSchema/OpenAPI/metadata adapters
  • Rules:RuleEnginecreateRuleEnginecompileRulesToEffectevaluateRule
  • Runtime pure logic:resolveRuntimeStateresolveFieldCapabilityresolveGroupCapability
  • Runtime inspection:getFieldRuntimeSnapshotgetRenderedFieldIdsgetSubmitableFieldIdsgetValidatableFieldIds
  • 共享纯类型:FormConfigBaseFieldConfigFieldNamePathDesignerMetadata、Field Address 和 Runtime 类型

仍属于 dynamic-form 的 API

  • React 组件:DynamicFormCompiledDynamicForm
  • Provider / hooks:DynamicFormProvideruseInitHandlersuseFormChainContextuseStoreInit
  • Form adapters:createAntdFormAdaptercreateMemoryFormAdapterassertFormAdapter
  • Renderers:antdRendererheadlessRendererassertRendererAdapter
  • Component registry:ComponentRegistryManagerDefaultRegistryFieldComponents
  • 默认 effect handler runtime 和 getDefaultConfig

Import 方式

旧 import 保持可用:

import { FormConfig, compileFormConfig } from '@whynotsnow/dynamic-form';

只需要纯配置能力时,可以直接依赖 core:

import { FormConfig, validateFormConfig } from '@whynotsnow/dynamic-form-core';

迁移边界

4.2.0 不删除 @whynotsnow/dynamic-form 的现有 public exports,也不强制用户迁移。core 包是新增入口,主要用于设计器、schema 管线、测试和非 React 环境。