← 返回主文档
步骤 4

注册组件实例到 RegisterWidget.ts

将 Vue 组件映射到 WidgetType,让渲染引擎能正确识别和渲染

📋 功能描述

RegisterWidget.ts 中将新创建的 Vue 组件实例注册到 SYS_COMPS_MAP 系统组件映射表中。这一步建立了 WidgetType → Vue Component 的映射关系,使低代码渲染引擎能够根据 schema 中的 type 字段找到并渲染对应的 Vue 组件。

🧩 模块描述

RegisterWidget.ts 是 PC 端组件注册的统一入口,负责:

📁 文件信息

文件路径

packages/form-designer/src/config/RegisterWidget.ts

操作类型

修改 - 添加 import 和注册项

注册位置

ensureInitialized() 函数内的 Object.assign

所属层级

页面设计器层 (packages/form-designer)

💻 修改示例

1. 在文件顶部添加导入:

// packages/form-designer/src/config/RegisterWidget.ts // 在已有 imports 中添加: import MyNewComponent from './widget/MyNewComponent.vue'

2. 在 ensureInitialized() 中注册:

export function ensureAllWidgetsInitialized() { ensureInitialized() } function ensureInitialized() { if (_initialized) return _initialized = true Object.assign(SYS_COMPS_MAP, { // 布局组件 [WidgetType.Root]: { instance: Root }, [WidgetType.Row]: { instance: Row }, // 通用组件 [WidgetType.CommonTxt]: { instance: CommonTxt }, [WidgetType.CommonBtn]: { instance: CommonBtn }, // ← 添加新组件 [WidgetType.MyNewComponent]: { instance: MyNewComponent }, }) }

⚠️ 注意事项

导入位置

import 语句放在文件顶部的 import 区域,与其他 widget imports 一起。注册项放在 ensureInitialized() 函数的 Object.assign 中。

➡️ 下一步

完成组件注册后,继续执行: