新特性
为了降低开发学习成本,提供更好的前端开发体验,在过去的几个月里,我们分阶段的对前端内核进行了重构,其中包括:

这一次 v0.17 重构了 UI Schema 设计器相关的 SchemaInitializer 和 SchemaSettings


为了解决用户上手难的问题,我们也重新梳理了各部分文档
- 插件开发(全面改版,已发布)
- API 参考 / 客户端(新版块,已发布)
- 使用手册(全面改版,将在未来一两周内发布)
- 插件列表(新版块,包括所有已有插件的介绍、使用、扩展开发的说明,将在未来一两周内发布)
不兼容的变化
SchemaInitializer 的变化
- 新增
SchemaInitializerManager,用于注册SchemaInitializer - 新增
useSchemaInitializerRender()代替原来的useSchemaInitializer()的render() - 新增
useSchemaInitializerItem(),用于获取当前初始化项的上下文 - 新增
SchemaInitializerItemGroup组件,用作type: 'itemGroup'的默认组件 - 新增
SchemaInitializerSubMenu组件,用作type: 'subMenu'的默认组件 - 新增
SchemaInitializerDivider组件,用作type: 'divider'的默认组件 - 新增
SchemaInitializerChildren组件,用于自定义渲染多个列表项 - 新增
SchemaInitializerChild组件,用于自定义渲染单个列表项 - 更改
SchemaInitializerContext职责变更,用于存放当前初始化器的上下文 - 更改
useSchemaInitializer()职责变更,用于获取当前初始化器的上下文 - 更改
function SchemaInitializer变更为class SchemaInitializer,用于定义初始化器 - 更改
SchemaInitializer参数变更- 新增
name必填参数,用于x-initializer的值。 - 新增
Component参数,用于定制化渲染的按钮。默认为SchemaInitializerButton。 - 新增
componentProps、style用于配置Component的属性和样式。 - 新增
ItemsComponent参数,用于定制化渲染的列表。默认为SchemaInitializerItems。 - 新增
itemsComponentProps、itemsComponentStyle用于配置ItemsComponent的属性和样式。 - 新增
popover参数,用于配置是否显示popover效果。 - 新增
useInsert参数,用于当insert函数需要使用 hooks 时。 - 更改 将
dropdown参数改为了popoverProps,使用Popover代替了Dropdown。
- 新增
- 更改
SchemaInitializer的items参数变更- 新增
useChildren函数,用于动态控制子项。 - 新增
componentProps函数,用于组件自身的属性。 - 新增
useComponentProps函数,用于动态处理组件的 props - 更改 将
key参数改为了name,用于列表项的唯一标识。 - 更改 将
visible参数改为了useVisible函数,用于动态控制是否显示。 - 更改 将
component参数改为了Component,用于列表项的渲染。
- 新增
- 更改
SchemaInitializer.Button变更为SchemaInitializerButton,是 SchemaInitializer 的 Component 参数的默认值; - 更改
SchemaInitializer.Item变更为SchemaInitializerItem,参数不变; - 更改
SchemaInitializer.ActionModal变更为SchemaInitializerActionModal,参数不变; - 更改
SchemaInitializer.SwitchItem变更为SchemaInitializer.Switch,参数不变。 - 删除
SchemaInitializerProvider,用SchemaInitializerManager代替 - 删除
SchemaInitializer.itemWrap,不需要再包裹item组件了;
SchemaSettings 的变化
- 新增
SchemaSettingsManager用于注册SchemaSettings - 新增
useSchemaSettingsItem() - 新增
useSchemaSettingsRender() - 新增
x-settings参数,用于配置 schema 的设置器 - 新增
x-toolbar参数,用于配置 schema 的工具栏 - 新增
SchemaToolbar组件,用于自定义 schema 的工具栏 - 新增
useSchemaToolbarRender(),代替原来的useDesigner() - 更改
function SchemaSettings变更为class SchemaSettings,用于定义设置器 - 更改 原
SchemaSettings变更为SchemaSettingsDropdown - 更改
SchemaSettings.Item变更为SchemaSettingsItem - 更改
SchemaSettings.ItemGroup变更为SchemaSettingsItemGroup - 更改
SchemaSettings.SubMenu变更为SchemaSettingsSubMenu - 更改
SchemaSettings.Divider变更为SchemaSettingsDivider - 更改
SchemaSettings.Remove变更为SchemaSettingsRemove - 更改
SchemaSettings.SelectItem变更为SchemaSettingsSelectItem - 更改
SchemaSettings.CascaderItem变更为SchemaSettingsCascaderItem - 更改
SchemaSettings.SwitchItem变更为SchemaSettingsSwitchItem - 更改
SchemaSettings.ModalItem变更为SchemaSettingsModalItem - 更改
SchemaSettings.ActionModalItem变更为SchemaSettingsActionModalItem - 删除
x-designer参数已废弃,将来会删除,使用x-toolbar代替, - 删除
useDesigner()已废弃,将来会删除,使用useSchemaToolbarRender()代替
更多详情查看 NocoBase 0.17 的不兼容变化