Merge remote-tracking branch 'origin/develop' into release/1.1.11-beta

This commit is contained in:
JackLian 2023-09-04 13:48:26 +08:00
commit 1d8eb596b3
4 changed files with 7 additions and 10 deletions

View File

@ -20,7 +20,7 @@ sidebar_position: 0
低代码引擎分为 4 大模块,入料 - 编排 - 渲染 - 出码:
- 入料模块就是将外部的物料,比如海量的 npm 组件,按照《物料描述协议》进行描述。将描述后的数据通过引擎 API 注册后,在编辑器中使用。
- 入料模块就是将外部的物料,比如海量的 npm 组件,按照[低代码引擎物料协议规范](/site/docs/specs/material-spec)进行描述。将描述后的数据通过引擎 API 注册后,在编辑器中使用。
> **注意,这里仅是增加描述,而非重写一套,这样我们能最大程度复用 ProCode 体系已沉淀的组件。**
- 编排,本质上来讲,就是**不断在生成符合[《低代码引擎搭建协议规范》](/site/docs/specs/lowcode-spec)的页面描述,将编辑器中的所有物料,进行布局设置、组件 CRUD 操作、以及 JS / CSS 编写/ 逻辑编排 **等,最终转换成页面描述,技术细节后文会展开。
- 渲染,顾名思义,就是**将编排生成的页面描述结构渲染成视图的过程**,视图是面向用户的,所以必须处理好内部数据流、生命周期、事件绑定、国际化等。

View File

@ -153,11 +153,7 @@ export class Editor extends EventEmitter implements IEditor {
return;
}
if (!AssetsCache[exportName] || !npm?.version || AssetsCache[exportName].npm?.version !== npm?.version) {
try {
await (new AssetLoader()).load(url);
} catch (error) {
console.error(`${url} load error: `, error);
}
await (new AssetLoader()).load(url);
}
AssetsCache[exportName] = component;
function setAssetsComponent(component: any, extraNpmInfo: any = {}) {

View File

@ -49,7 +49,7 @@ export class Workbench extends Component<{
<SkeletonContext.Provider value={skeleton}>
<TopArea area={skeleton.topArea} itemClassName={topAreaItemClassName} />
<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} />
<LeftFixedPane area={skeleton.leftFixedArea} />
<div className="lc-workspace-workbench-center">

View File

@ -126,9 +126,10 @@ export class EditorWindow implements IEditorWindow {
async init() {
await this.initViewTypes();
await this.execViewTypesInit();
Promise.all(Array.from(this.editorViews.values()).map((d) => d.onSimulatorRendererReady)).then(() => {
this.workspace.emitWindowRendererReady();
});
Promise.all(Array.from(this.editorViews.values()).map((d) => d.onSimulatorRendererReady()))
.then(() => {
this.workspace.emitWindowRendererReady();
});
this.url = await this.resource.url();
this.setDefaultViewName();
this.initReady = true;