基礎(chǔ)設(shè)施 :?jiǎn)?dòng)低代碼平臺(tái)研發(fā)之前,你需要有什么家底?
今天,我們來(lái)聊一聊在啟動(dòng)低代碼平臺(tái)研發(fā)之前,必須準(zhǔn)備好的基礎(chǔ)設(shè)施。低代碼平臺(tái)以其快速構(gòu)建應(yīng)用的優(yōu)勢(shì),正在被越來(lái)越多的企業(yè)采用。但在著手開(kāi)發(fā)低代碼平臺(tái)之前,你需要確保一些核心的“家底”已經(jīng)打牢,尤其是Web 組件集。作為低代碼平臺(tái)的基石,組件集的質(zhì)量和能力幾乎決定了平臺(tái)的成敗。
本文將以組件集為核心,結(jié)合源碼片段和國(guó)內(nèi)低代碼平臺(tái)的案例,幫助你從理論到實(shí)踐全面掌握這一重要主題。
一、為什么選擇 B/S 架構(gòu)?
過(guò)去幾年中,Web 技術(shù)得到了快速發(fā)展,使瀏覽器能夠承載復(fù)雜的 Web 應(yīng)用。低代碼平臺(tái)選擇 B/S 架構(gòu)幾乎是毋庸置疑的:
- 優(yōu)勢(shì)一:跨平臺(tái)支持 B/S 架構(gòu)只需一個(gè)瀏覽器即可運(yùn)行,無(wú)需安裝客戶端,無(wú)論是 PC 端還是移動(dòng)端都能很好支持。
- 優(yōu)勢(shì)二:開(kāi)發(fā)生態(tài)成熟 前端框架如 React、Vue、Angular,以及 CSS 框架如 Tailwind、Ant Design 已經(jīng)非常完善,構(gòu)建低代碼平臺(tái)有充足的技術(shù)儲(chǔ)備。
- 優(yōu)勢(shì)三:可視化開(kāi)發(fā)更便捷 可視化開(kāi)發(fā)工具天然適合基于 Web 技術(shù)實(shí)現(xiàn),利用現(xiàn)代瀏覽器的渲染能力和調(diào)試工具,可以快速搭建功能豐富的可視化編輯器。
二、組件集在低代碼平臺(tái)中的作用
Web 組件集在低代碼平臺(tái)中的作用主要體現(xiàn)在以下三個(gè)環(huán)節(jié):
- 構(gòu)建低代碼編輯器自身 編輯器的畫(huà)布、工具欄、屬性面板等核心功能都依賴于組件集。
- 構(gòu)建開(kāi)發(fā)能力 開(kāi)發(fā)者通過(guò)組件集擴(kuò)展平臺(tái)能力,如自定義組件和模板。
- 構(gòu)建業(yè)務(wù)應(yīng)用 業(yè)務(wù)應(yīng)用由組件組合而成,組件的可復(fù)用性和豐富程度直接影響業(yè)務(wù)開(kāi)發(fā)的效率和效果。
三、優(yōu)秀組件集的特性
在啟動(dòng)低代碼平臺(tái)之前,你需要評(píng)估現(xiàn)有組件集是否滿足需求。以下是優(yōu)秀組件集應(yīng)具備的特性:
3.1 豐富的組件種類
- 基礎(chǔ)組件:按鈕、表單、表格、樹(shù)形控件等常見(jiàn)組件。
- 高級(jí)組件:圖表、流程圖、圖像編輯器等復(fù)雜功能組件。
例如:Ant Design 提供了豐富的基礎(chǔ)組件,支持 React 和 Vue,適合快速開(kāi)發(fā)高質(zhì)量的 Web 應(yīng)用。
3.2 高度可定制化
組件集應(yīng)支持外觀和行為的高度定制,以便開(kāi)發(fā)者根據(jù)業(yè)務(wù)需求快速調(diào)整。例如:
- 主題定制:通過(guò)配置主題或動(dòng)態(tài)切換樣式。
- 行為擴(kuò)展:支持事件鉤子和自定義邏輯的注入。
以下是一個(gè)基于 Ant Design 的主題定制示例:
import { ConfigProvider } from 'antd';
import zhCN from 'antd/lib/locale/zh_CN';
const theme = {
token: {
colorPrimary: '#1890ff',
borderRadiusBase: '4px',
},
};
const App = () => (
<ConfigProvider theme={theme} locale={zhCN}>
<YourApp />
</ConfigProvider>
);注釋:通過(guò) ConfigProvider 配置主題和國(guó)際化,讓組件的外觀和語(yǔ)言動(dòng)態(tài)切換。
3.3 性能優(yōu)化
- 虛擬列表:對(duì)于大數(shù)據(jù)量的列表或表格,組件集應(yīng)內(nèi)置虛擬滾動(dòng)功能。
- 按需加載:支持 Tree Shaking 和組件按需加載,避免加載不必要的資源。
以下是實(shí)現(xiàn)按需加載的示例:
import { Button } from 'antd';
// 使用 antd 的 babel-plugin-import 插件
// 自動(dòng)按需加載組件和樣式3.4 強(qiáng)大的擴(kuò)展能力
組件集需要支持?jǐn)U展,例如增加新的 UI 控件或自定義行為。以下是 React 中擴(kuò)展組件的一個(gè)示例:
import React from 'react';
import { Button } from 'antd';
const CustomButton = (props) => {
const handleClick = () => {
alert('自定義點(diǎn)擊邏輯');
props.onClick && props.onClick();
};
return <Button {...props} onClick={handleClick} />;
};
export default CustomButton;注釋:通過(guò)封裝 Ant Design 的 Button,擴(kuò)展自定義邏輯,同時(shí)保留原有功能。
四、國(guó)內(nèi)低代碼平臺(tái)的組件實(shí)踐
國(guó)內(nèi)涌現(xiàn)了許多優(yōu)秀的低代碼平臺(tái),它們?cè)诮M件集上各有特色。以下是幾個(gè)案例:
4.1 阿里巴巴的宜搭(Yida)
- 特點(diǎn):基于 Ant Design 構(gòu)建,提供高度集成的可視化編輯器。
- 組件實(shí)踐:宜搭的表單控件非常強(qiáng)大,支持拖拽式布局和動(dòng)態(tài)校驗(yàn)。
示例:拖拽生成的表單代碼可能類似如下:
{
"type": "form",
"fields": [
{
"type": "input",
"label": "姓名",
"key": "name",
"props": {
"placeholder": "請(qǐng)輸入姓名",
"required": true
}
},
{
"type": "datePicker",
"label": "生日",
"key": "birthday",
"props": {
"placeholder": "請(qǐng)選擇日期"
}
}
]
}注釋:這是低代碼平臺(tái)常用的 JSON 配置,通過(guò)解析動(dòng)態(tài)生成表單。
4.2 字節(jié)跳動(dòng)的 OpenCode
- 特點(diǎn):專注于前端低代碼開(kāi)發(fā),組件庫(kù)支持復(fù)雜的交互邏輯。
- 組件實(shí)踐:其畫(huà)布組件支持拖拽和多選,極大提升了用戶體驗(yàn)。
以下是拖拽組件的簡(jiǎn)單實(shí)現(xiàn):
import { useState } from 'react';
const DraggableComponent = () => {
const [position, setPosition] = useState({ x: 0, y: 0 });
const handleDrag = (e) => {
setPosition({ x: e.clientX, y: e.clientY });
};
return (
<div
style={{
position: 'absolute',
left: position.x,
top: position.y,
width: '100px',
height: '100px',
backgroundColor: 'lightblue',
cursor: 'move',
}}
onMouseMove={handleDrag}
>
拖拽我
</div>
);
};注釋:通過(guò)監(jiān)聽(tīng)鼠標(biāo)事件,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的拖拽功能。
4.3 華為的 DevRun
- 特點(diǎn):提供強(qiáng)大的企業(yè)級(jí)組件集,支持高并發(fā)和多租戶場(chǎng)景。
- 組件實(shí)踐:其圖表組件采用 ECharts,支持復(fù)雜的數(shù)據(jù)可視化。
示例:基于 ECharts 的折線圖配置:
const option = {
title: {
text: '折線圖示例',
},
tooltip: {},
xAxis: {
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
},
yAxis: {},
series: [
{
name: '銷(xiāo)量',
type: 'line',
data: [5, 20, 36, 10, 10, 20],
},
],
};五、總結(jié)
打造一個(gè)低代碼平臺(tái)需要強(qiáng)大的基礎(chǔ)設(shè)施,而組件集是其中的核心部分。在研發(fā)之前,你需要確保擁有以下“家底”:
- 豐富的組件種類;
- 高度可定制化能力;
- 強(qiáng)大的性能優(yōu)化;
- 擴(kuò)展性強(qiáng)的設(shè)計(jì)。
國(guó)內(nèi)低代碼平臺(tái)如阿里宜搭、字節(jié)跳動(dòng) OpenCode 和華為 DevRun 的組件實(shí)踐為我們提供了寶貴的經(jīng)驗(yàn)。希望通過(guò)本文的分析和示例代碼,能幫助你更好地構(gòu)筑低代碼平臺(tái)的核心基礎(chǔ)設(shè)施。



























