来源:开源技术专栏(ID:GitHubKY)
LowCodeEngine是由阿里巴巴钉钉团队开源的低代码引擎, 该引擎全面遵循《阿里巴巴中后端前端基础构建协议规范》和《阿里巴巴中后端前端素材协议规范》。兼容主流浏览器:Chrome >= 80
,Edge >= 80
,safari
和 firefox 最近 2 个 版本
。
特性
🌈 提炼自企业级低代码平台的面向扩展设计的内核引擎,奉行最小内核,最强生态的设计理念
📦 开箱即用的高质量生态元素,包括 物料体系、设置器、插件 等
⚙️ 完善的工具链,支持 物料体系、设置器、插件 等生态元素的全链路研发周期
🔌 强大的扩展能力,已支撑 100+ 个各种类型低代码平台
🛡 使用 TypeScript 开发,提供完整的类型定义文件
引 擎协议
引擎完整实现了《低代码引擎搭建协议规范》 和《低代码引擎物料协议规范》 ,协议栈是低代码领域的物料能否流通的关键部分。
![59f89c3b1e86ca8206550dd2fc04b754.png](https://img-blog.csdnimg.cn/img_convert/59f89c3b1e86ca8206550dd2fc04b754.png)
使用示例
npm install @alilc/lowcode-engine --save-dev
TIPS:仅支持 cdn 方式引入,npm 包用于提供 typings 等代码提示能力
import { init, skeleton } from '@alilc/lowcode-engine';
skeleton.add({
area: 'topArea',
type: 'Widget',
name: 'logo',
content: YourFantaticLogo,
contentProps: {
logo:
'https://img.alicdn.com/tfs/TB1_SocGkT2gK0jSZFkXXcIQFXa-66-66.png',
href: '/',
},
props: {
align: 'left',
width: 100,
},
});
init(document.getElementById('lce'));
工程化配置:
{
"externals": {
"@alilc/lowcode-engine": "var window.AliLowCodeEngine",
"@alilc/lowcode-engine-ext": "var window.AliLowCodeEngineExt"
}
}
cdn 可选方式:
方式 1(推荐):alifd cdn
https://alifd.alicdn.com/npm/@alilc/lowcode-engine@1.0.0/dist/js/engine-core.js
https://alifd.alicdn.com/npm/@alilc/lowcode-react-simulator-renderer@1.0.0/dist/js/react-simulator-renderer.js
方式 2:unpkg
https://unpkg.com/@alilc/lowcode-engine@1.0.0/dist/js/engine-core.js
https://unpkg.com/@alilc/lowcode-react-simulator-renderer@1.0.0/dist/js/react-simulator-renderer.js
方式 3:jsdelivr
https://cdn.jsdelivr.net/npm/@alilc/lowcode-engine@1.0.0/dist/js/engine-core.js
https://cdn.jsdelivr.net/npm/@alilc/lowcode-react-simulator-renderer@1.0.0/dist/js/react-simulator-renderer.js
方式 4:使用自有 cdn
将源码中 packages/engine/dist
和 packages/(react|rax)-simulator-renderer/dist
下的文件传至你的 cdn 提供商
界面功能
低代码编辑器中的区块主要包含这些功能点:
![1905dc60a304dac497b487b28b434239.png](https://img-blog.csdnimg.cn/img_convert/1905dc60a304dac497b487b28b434239.png)
物料面板
可以查找组件,并在此拖动组件到编辑器画布中:
![9b755ec77147fee551ed82cf45a0de6f.gif](https://img-blog.csdnimg.cn/img_convert/9b755ec77147fee551ed82cf45a0de6f.gif)
大纲面板
可以调整页面内的组件树结构:
![1e427607d74d33c73b89af95bc5b0409.gif](https://img-blog.csdnimg.cn/img_convert/1e427607d74d33c73b89af95bc5b0409.gif)
可以在这里打开或者关闭模态浮层的展现:
![eb02aba0aa652ec7d8986066d03581b8.gif](https://img-blog.csdnimg.cn/img_convert/eb02aba0aa652ec7d8986066d03581b8.gif)
源码面板
可以编辑页面级别的 JavaScript 代码和 CSS 配置:
![7948157f9f63b5fc0307ded22daabb23.gif](https://img-blog.csdnimg.cn/img_convert/7948157f9f63b5fc0307ded22daabb23.gif)
Schema 编辑
【开发者专属】可以编辑页面的底层 Schema 数据:
![22c2651c5ab51a763e8ab729c5f32e7e.png](https://img-blog.csdnimg.cn/img_convert/22c2651c5ab51a763e8ab729c5f32e7e.png)
搭配顶部操作区的“保存到本地”和“重置页面”功能,可以实验各种 schema 对低代码页面的改变。
编辑画布区域
点击组件在右侧面板中能够显示出对应组件的属性配置选项:
![9e0aff15f4714caddaea2e81307904d0.gif](https://img-blog.csdnimg.cn/img_convert/9e0aff15f4714caddaea2e81307904d0.gif)
拖拽修改组件的排列顺序:
![6a94f5a6f9666b7ba5cf93ca7f987e18.gif](https://img-blog.csdnimg.cn/img_convert/6a94f5a6f9666b7ba5cf93ca7f987e18.gif)
将组件拖拽到容器类型的组件中,注意拖拽时会在右侧提示当前的组件树:
![7c2359e99047d184907b345f4bde2ce5.gif](https://img-blog.csdnimg.cn/img_convert/7c2359e99047d184907b345f4bde2ce5.gif)
属性
组件的基础属性值设置:
![246072ae4bfc4436ab208c756a8225ee.gif](https://img-blog.csdnimg.cn/img_convert/246072ae4bfc4436ab208c756a8225ee.gif)
样式
组件的样式配置,如文字:
![d04df4ea7a9c9da4f2ce1732568255d2.gif](https://img-blog.csdnimg.cn/img_convert/d04df4ea7a9c9da4f2ce1732568255d2.gif)
事件
绑定组件对外暴露的事件:
![c96c50dfe22a839044f1fee19439523a.gif](https://img-blog.csdnimg.cn/img_convert/c96c50dfe22a839044f1fee19439523a.gif)
高级
循环、条件渲染与 key 设置:
![8f2ba21cc5ceaf27a08aed31c7d2d328.gif](https://img-blog.csdnimg.cn/img_convert/8f2ba21cc5ceaf27a08aed31c7d2d328.gif)
案例
钉钉宜搭是阿里巴巴自研的低代码应用开发平台
![8020442a9afdba2929027bf305edd743.png](https://img-blog.csdnimg.cn/img_convert/8020442a9afdba2929027bf305edd743.png)
Parts造物是阿里巴巴自研的低代码物料管理、物料集成、物料研发的产品
![77058bcb7bdf448b90ec9dfcf9747126.png](https://img-blog.csdnimg.cn/img_convert/77058bcb7bdf448b90ec9dfcf9747126.png)
传送门
开源地址:
https://github.com/alibaba/lowcode-engine