跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptSaaS大前端

LogicFlow:前端流程图编辑框架入门与实战

综述由AI生成LogicFlow 是一款专注于业务流程图编辑的前端开源框架,提供强大的节点自定义能力和数据驱动模式。其核心概念(GraphModel、Node、Edge),并通过 HTML 示例演示了如何初始化项目、创建画布、添加节点与连线。此外还涵盖了自定义业务节点、获取与回显流程图数据以及插件生态系统的使用指南,帮助开发者快速在网页应用中集成专业的流程图设计器。

小熊软糖发布于 2026/4/6更新于 2026/5/2230 浏览
LogicFlow:前端流程图编辑框架入门与实战

引言:什么是 LogicFlow?

在后台系统中,常需要让用户通过拖拽定义复杂的业务流程(如审批流、数据流转)。

官网地址:https://07.logic-flow.cn/

问题场景:

  1. 使用现成的流程图工具(如 draw.io 嵌入) -> 功能固定,难以与业务深度集成。
  2. 从零开始用 Canvas 或 SVG 手写一个? -> 工程量巨大,维护成本高。

此时,LogicFlow 是一款专注于业务流程图编辑的前端开源框架。它不关心后端技术栈,只专注于在前端页面上提供功能强大、易于扩展的流程图绘制区域。

核心定位: 让开发者能快速、轻松地在自己的网页应用中集成一个专业的流程图设计器。

一、为什么选择 LogicFlow?它的核心优势是什么?

  1. 极易上手,API 设计友好
    LogicFlow 的 API 设计直观。只需几行代码即可创建基础的流程图编辑器。
  2. 高扩展性,自定义能力强
    支持自定义节点(如'用户任务'、'网关')、连线样式及插件(菜单、缩略图、BPMN 适配等)。
  3. 数据驱动,与业务无缝集成
    采用纯粹的数据驱动模式,无需直接操作 DOM。获取的 JSON 数据可轻松保存至数据库。
  4. 国产开源,中文文档齐全
    由国内团队打造,拥有完善的中文文档和活跃社区。

提示:LogicFlow 支持 HTML、Vue、React 等前端框架,本文以 HTML 为例进行集成。

二、核心概念快速理解

概念是什么?类比
GraphModel (图模型)整个流程图的数据和逻辑核心,管理所有节点和边。家族的'族谱',记录成员及关系
Node (节点)流程图中的基础元素,如步骤、任务。族谱中的'人'
Edge (边/连线)连接两个节点的线,表示流程走向。族谱中的'父子关系'

三、实战:5 分钟创建一个你的第一个流程图

步骤 1:初始化项目并安装

# 创建目录并初始化
mkdir my-logicflow-demo
cd my-logicflow-demo
npm init -y

# 安装 LogicFlow
npm install @logicflow/core

步骤 2:创建 HTML 容器

创建 index.html 文件:

<!DOCTYPE html>
< =>

    
    
    我的第一个 LogicFlow 流程图
    


    
    
    


html
lang
"zh-CN"
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@logicflow/core/dist/style/index.css"/>
</head>
<body>
<!-- 准备一个容器,LogicFlow 会在这个 div 里渲染画布 -->
<div id="container" style="width: 1000px; height: 600px; border: 1px solid #aaa;">
</div>
<script src="./app.js">
</script>
</body>
</html>

步骤 3:编写 JavaScript 逻辑

创建 app.js 文件:

// 引入 LogicFlow
import { LogicFlow } from '@logicflow/core';

// 1. 配置画布
const lf = new LogicFlow({
    container: document.querySelector('#container'),
    grid: true, // 开启网格,方便对齐
});

// 2. 渲染画布
lf.render();

// 3. 设置默认节点和连线类型
lf.setDefaultEdgeType('polyline'); // 设置默认连线为折线

// 4. 添加初始节点和连线
lf.addNode({ type: 'rect', x: 100, y: 100, text: '开始节点' });
lf.addNode({ type: 'circle', x: 300, y: 100, text: '处理节点' });
lf.addEdge({ type: 'polyline', sourceNodeId: 1, targetNodeId: 2 });

注意:上述 ES Module 写法需配合构建工具(如 Vite, Webpack)。若直接在浏览器运行,建议使用 CDN 方式引入。

步骤 4:查看结果

用浏览器打开 index.html,你将看到一个包含两个节点和一条连线的流程图。

四、进阶:自定义一个业务节点

基础节点太单调?我们来创建一个'审批节点'。

// 继承 RectNode 来创建自定义节点
import { RectNode, RectNodeModel } from '@logicflow/core';

// 1. 定义视图(View):控制节点外观
class ApprovalNode extends RectNode {
    // 可重写获取形状的方法
}

// 2. 定义模型(Model):控制节点数据和行为逻辑
class ApprovalNodeModel extends RectNodeModel {
    initNodeData(data) {
        super.initNodeData(data);
        this.width = 120;
        this.height = 80;
        this.radius = 10; // 圆角矩形
        this.stroke = '#2980b9'; // 边框颜色
        this.fill = '#d6eaf8'; // 填充颜色
    }

    getTextStyle() {
        const style = super.getTextStyle();
        style.fontSize = 16;
        style.color = '#2c3e50';
        return style;
    }
}

// 3. 注册自定义节点
lf.register('approval', { view: ApprovalNode, model: ApprovalNodeModel });

// 4. 添加自定义节点
lf.addNode({ type: 'approval', x: 500, y: 200, text: '主管审批' });

五、数据:流程图的输入与输出

LogicFlow 的核心是数据。

  • 获取数据(保存):调用 lf.getGraphData() 获取 JSON 数据,描述图结构,可存入数据库。
const graphData = lf.getGraphData();
console.log(JSON.stringify(graphData));
// 输出:{"nodes": [...], "edges": [...]}
  • 渲染数据(回显):从后端获取 JSON 数据后,传入 lf.render()。
const previouslySavedData = {...}; // 从 API 获取的数据
lf.render(previouslySavedData);

六、生态系统与未来

LogicFlow 拥有繁荣的插件生态系统:

  • @logicflow/extension:官方扩展包,包含 BPMN 支持、缩略图、框选工具等。

使用插件示例:

import { BpmnElement } from '@logicflow/extension';

// 注册插件
lf.use(BpmnElement);
// 之后可以使用 'bpmn:startEvent' 等 BPMN 类型的节点

总结

  1. LogicFlow 是什么? 强大、易扩展的前端流程图编辑框架。
  2. 解决了什么问题? 简化了网页应用中专业流程图设计器的集成,提升开发效率和用户体验。
  3. 学习曲线如何? 入门快,核心概念清晰,文档丰富,支持复杂业务场景。

无论是做 OA 审批、自动化运维、低代码平台,还是任何可视化编排场景,LogicFlow 都值得尝试。

目录

  1. 引言:什么是 LogicFlow?
  2. 一、为什么选择 LogicFlow?它的核心优势是什么?
  3. 二、核心概念快速理解
  4. 三、实战:5 分钟创建一个你的第一个流程图
  5. 步骤 1:初始化项目并安装
  6. 创建目录并初始化
  7. 安装 LogicFlow
  8. 步骤 2:创建 HTML 容器
  9. 步骤 3:编写 JavaScript 逻辑
  10. 步骤 4:查看结果
  11. 四、进阶:自定义一个业务节点
  12. 五、数据:流程图的输入与输出
  13. 六、生态系统与未来
  14. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VS Code 禁用 GitHub Copilot 自动补全功能
  • CSP-S 信奥赛 C++ 提高组倍增算法思想及应用(4)
  • QClaw 本地 AI Agent 接入微信的使用指南与原理分析
  • 假如你来发明编程语言:从底层原理到编译器构建
  • VSCode Git 工作树多任务并行开发实践
  • GitHub Copilot 学生认证教程
  • llama.cpp 大模型本地部署使用指南
  • JavaScript 实现滚动内容自动切换 Tab
  • OpenAI 董事会解雇 CEO 山姆·奥特曼,微软确认继续合作
  • iceoryx 附录:C++ 内存模型与原子操作详解
  • Qwen3.5-9B 超越 GPT-oss-120B:混合架构、基准测试与开源许可分析
  • 从 Java 转职 Python 的学习路径与核心知识点
  • FPGA 是什么:从原理到应用场景的通俗解读
  • 鸿蒙卡片开发实战:音乐播放器卡片构建指南
  • 网络安全行业主流证书选择指南
  • Pandas 安装避坑指南:编译环境与版本兼容性
  • Linux 账号体系与权限管理实战
  • Llama3-8B 一键部署教程:vllm+Open-WebUI 镜像免配置
  • Android 求职面试指南:核心知识点与准备策略
  • Rust 异步代码的测试与调试实践

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online