Skip to content

选择定制层级 ​

从浅到深改。能停在上一层就不要写 Plugin。

级你改什么典型入口
L0只写 Schema默认 widget + 默认 ViewTree
L1uiSchema.fieldslabel / widget / props / behavior / native
L2uiSchema.layout、field: false分组、栅格、数组区域
L3config + rules校验时机、条件显示、计算字段
L4Core PlugindefineWidget / validator / ruleFunction(没有 UI)
L5Adapter 工厂追加create*Adapter({ widgets }),不会覆盖已有 key
L6精确 overrideextend*Adapter + Renderer Environment overrides
L7整份 Adapter换叶子包,或 defineVueUIAdapter / defineReactUIAdapter(才能换 fieldChrome / form)

字段、布局、规则 覆盖 L0–L3。下面三页覆盖 L4–L7。

做不到(相对 rjsf) ​

  • 没有 fields map 把某个 schema 节点换成自定义 Field 类
  • 没有 templates / Theme 对象;最接近 theme 的是整份 UI Adapter
  • Custom widget 拿不到 FormInstance、Store、native event;只能用 snapshots + setValue / touch / focus / blur
  • 公开可替换的是 Adapter 的 widgets / layouts / fieldChrome / form,不是 ObjectRenderer 组件本身