mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-19 22:58:15 +00:00
Merge remote-tracking branch 'origin/develop' into release/1.1.11-beta
This commit is contained in:
commit
1d8eb596b3
@ -20,7 +20,7 @@ sidebar_position: 0
|
|||||||
|
|
||||||
低代码引擎分为 4 大模块,入料 - 编排 - 渲染 - 出码:
|
低代码引擎分为 4 大模块,入料 - 编排 - 渲染 - 出码:
|
||||||
|
|
||||||
- 入料模块就是将外部的物料,比如海量的 npm 组件,按照《物料描述协议》进行描述。将描述后的数据通过引擎 API 注册后,在编辑器中使用。
|
- 入料模块就是将外部的物料,比如海量的 npm 组件,按照[《低代码引擎物料协议规范》](/site/docs/specs/material-spec)进行描述。将描述后的数据通过引擎 API 注册后,在编辑器中使用。
|
||||||
> **注意,这里仅是增加描述,而非重写一套,这样我们能最大程度复用 ProCode 体系已沉淀的组件。**
|
> **注意,这里仅是增加描述,而非重写一套,这样我们能最大程度复用 ProCode 体系已沉淀的组件。**
|
||||||
- 编排,本质上来讲,就是**不断在生成符合[《低代码引擎搭建协议规范》](/site/docs/specs/lowcode-spec)的页面描述,将编辑器中的所有物料,进行布局设置、组件 CRUD 操作、以及 JS / CSS 编写/ 逻辑编排 **等,最终转换成页面描述,技术细节后文会展开。
|
- 编排,本质上来讲,就是**不断在生成符合[《低代码引擎搭建协议规范》](/site/docs/specs/lowcode-spec)的页面描述,将编辑器中的所有物料,进行布局设置、组件 CRUD 操作、以及 JS / CSS 编写/ 逻辑编排 **等,最终转换成页面描述,技术细节后文会展开。
|
||||||
- 渲染,顾名思义,就是**将编排生成的页面描述结构渲染成视图的过程**,视图是面向用户的,所以必须处理好内部数据流、生命周期、事件绑定、国际化等。
|
- 渲染,顾名思义,就是**将编排生成的页面描述结构渲染成视图的过程**,视图是面向用户的,所以必须处理好内部数据流、生命周期、事件绑定、国际化等。
|
||||||
|
|||||||
@ -153,11 +153,7 @@ export class Editor extends EventEmitter implements IEditor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!AssetsCache[exportName] || !npm?.version || AssetsCache[exportName].npm?.version !== npm?.version) {
|
if (!AssetsCache[exportName] || !npm?.version || AssetsCache[exportName].npm?.version !== npm?.version) {
|
||||||
try {
|
await (new AssetLoader()).load(url);
|
||||||
await (new AssetLoader()).load(url);
|
|
||||||
} catch (error) {
|
|
||||||
console.error(`${url} load error: `, error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
AssetsCache[exportName] = component;
|
AssetsCache[exportName] = component;
|
||||||
function setAssetsComponent(component: any, extraNpmInfo: any = {}) {
|
function setAssetsComponent(component: any, extraNpmInfo: any = {}) {
|
||||||
|
|||||||
@ -49,7 +49,7 @@ export class Workbench extends Component<{
|
|||||||
<SkeletonContext.Provider value={skeleton}>
|
<SkeletonContext.Provider value={skeleton}>
|
||||||
<TopArea area={skeleton.topArea} itemClassName={topAreaItemClassName} />
|
<TopArea area={skeleton.topArea} itemClassName={topAreaItemClassName} />
|
||||||
<div className="lc-workspace-workbench-body">
|
<div className="lc-workspace-workbench-body">
|
||||||
<LeftArea className="lc-workspace-left-area" area={skeleton.leftArea} />
|
<LeftArea className="lc-workspace-left-area lc-left-area" area={skeleton.leftArea} />
|
||||||
<LeftFloatPane area={skeleton.leftFloatArea} />
|
<LeftFloatPane area={skeleton.leftFloatArea} />
|
||||||
<LeftFixedPane area={skeleton.leftFixedArea} />
|
<LeftFixedPane area={skeleton.leftFixedArea} />
|
||||||
<div className="lc-workspace-workbench-center">
|
<div className="lc-workspace-workbench-center">
|
||||||
|
|||||||
@ -126,9 +126,10 @@ export class EditorWindow implements IEditorWindow {
|
|||||||
async init() {
|
async init() {
|
||||||
await this.initViewTypes();
|
await this.initViewTypes();
|
||||||
await this.execViewTypesInit();
|
await this.execViewTypesInit();
|
||||||
Promise.all(Array.from(this.editorViews.values()).map((d) => d.onSimulatorRendererReady)).then(() => {
|
Promise.all(Array.from(this.editorViews.values()).map((d) => d.onSimulatorRendererReady()))
|
||||||
this.workspace.emitWindowRendererReady();
|
.then(() => {
|
||||||
});
|
this.workspace.emitWindowRendererReady();
|
||||||
|
});
|
||||||
this.url = await this.resource.url();
|
this.url = await this.resource.url();
|
||||||
this.setDefaultViewName();
|
this.setDefaultViewName();
|
||||||
this.initReady = true;
|
this.initReady = true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user