扩展点简述
我们可以从 Demo 的项目中看到页面中有很多的区块:
这些功能点背后都是可扩展项目,如下图所示:
- 插件定制:可以配置低代码编辑器的功能和面板
- 物料定制:可以配置能够拖入的物料
- 操作辅助区定制:可以配置编辑器画布中的操作辅助区功能
- 设置器定制:可以配置编辑器中组件的配置表单
我们从可扩展项目的视角,可以把低代码引擎架构理解为下图:

(注:引擎内核中大量数据交互的细节被简化,这张图仅仅强调编辑器和外部扩展的交互)
配置扩展点
配置物料
通过配置注入物料,这里的配置是物料中心根据物料资产包协议生成的,后面“物料扩展”章节会有详细说明。
import { material } from '@alilc/lowcode-engine'// 假设您已把物料配置在本地import assets from './assets.json'// 静态加载 assetsmaterial.setAssets(assets)
也可以通过异步加载物料中心上的物料。
import { ILowCodePluginContext, material, plugins } from '@alilc/lowcode-engine'// 动态加载 assetsplugins.register((ctx: ILowCodePluginContext) => {return {name: 'ext-assets',async init() {try {// 将下述链接替换为您的物料即可。无论是通过 utils 从物料中心引入,还是通过其他途径如直接引入物料描述const res = await window.fetch('https://fusion.alicdn.com/assets/default@0.1.95/assets.json')const assets = await res.text()material.setAssets(assets)} catch (err) {console.error(err)}},}}).catch(err => console.error(err))
配置插件
可以通过 npm 包的方式引入社区插件,配置如下所示:
import { ILowCodePluginContext, plugins } from '@alilc/lowcode-engine'import PluginIssueTracker from '@alilc/lowcode-plugin-issue-tracker'// 注册一个提 issue 组件到您的编辑器中,方位默认在左栏下侧plugins.register(PluginIssueTracker).catch(err => console.error(err))
后续“插件扩展”章节会详细说明。
配置设置器
低代码引擎默认内置了设置器(详见“配置设置器”章节)。您可以通过 npm 包的方式引入自定义的设置器,配置如下所示:
import { setters } from '@alilc/lowcode-engine'// 假设您自定义了一个 setterimport MuxMonacoEditorSetter from './components/setters/MuxMonacoEditorSetter'// 注册设置器setters.registerSetter({MuxMonacoEditorSetter: {component: MuxMonacoEditorSetter,title: 'Textarea',condition: (field) => {const v = field.getValue()return typeof v === 'string'},},})
后续“设置器扩展”章节会详细说明。
本章节所有可扩展配置内容在 demo 中均可找到:https://github.com/alibaba/lowcode-demo/blob/main/src/universal/plugin.tsx
