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

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

LogicFlow 是一款前端开源流程图编辑框架,专注于业务流程图设计。其核心优势包括 API 友好、高扩展性、数据驱动及完善的中文文档。 LogicFlow 的核心概念(GraphModel、Node、Edge),并通过实战演示了如何初始化项目、创建基础流程图、自定义业务节点以及处理流程图的输入输出数据。该框架适用于 OA 审批、自动化运维及低代码平台等可视化编排场景。

墨染流年发布于 2026/4/5更新于 2026/9/1084 浏览
LogicFlow:前端流程图编辑框架入门与实战

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

引言:什么是 LogicFlow?

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

  • 使用现成的流程图工具:功能固定,难以与业务深度集成。
  • 从零开始手写:工程量巨大,维护成本高。

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

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

一、为什么选择 LogicFlow?

  1. 极易上手,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
npm install @logicflow/core

步骤 2:创建 HTML 容器

创建 index.html 文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name= =>
    我的第一个 LogicFlow 流程图
    


    
    
    


"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 写法在部分浏览器中可能需构建工具支持。CDN 方式如下:

在 index.html 的 </body> 前加入:

<script src="https://cdn.jsdelivr.net/npm/@logicflow/core/dist/logic-flow.js"></script>
<script>
    const { LogicFlow } = window.LogicFlow;
    // ... 其余代码与上面 app.js 相同
</script>

步骤 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、MiniMap(缩略图)、SelectionSelect(框选工具)等。

使用插件通常非常简单:

import { BpmnElement } from '@logicflow/extension';
lf.use(BpmnElement);
// 之后就可以使用 'bpmn:startEvent' 等 BPMN 类型的节点了

总结

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

适用于 OA 审批、自动化运维、低代码平台等可视化编排场景。

目录

  1. LogicFlow:前端流程图编辑框架入门与实战
  2. 引言:什么是 LogicFlow?
  3. 一、为什么选择 LogicFlow?
  4. 二、核心概念快速理解
  5. 三、实战:5 分钟创建一个流程图
  6. 步骤 1:初始化项目并安装
  7. 步骤 2:创建 HTML 容器
  8. 步骤 3:编写 JavaScript 逻辑
  9. 步骤 4:查看结果
  10. 四、进阶:自定义业务节点
  11. 五、数据:流程图的输入与输出
  12. 六、生态系统与未来
  13. 总结

更多推荐文章

查看全部
  • WebSocket 如何实现全双工通信:从 HTTP 升级到协议切换
  • ES6 核心语法全解析:避坑指南与实战代码
  • C++11 左值与右值引用详解:移动语义与返回值优化实战
  • ClawdBot 本地 AI 助理完整安装与配置指南
  • 基于 DeepSeek 与 Cursor 构建智能代码审查工具实战
  • Spring Boot 消息队列与异步通信详解
  • Ubuntu 远程 SSH 连接配置与 VS Code 使用
  • DeepSeek 各版本说明与优缺点分析
  • VibeThinker-1.5B-APP:小模型在编程与数学推理中的优势与部署
  • Python vs Java:AI 项目选型指南
  • whisper.cpp 跨平台语音识别部署全流程
  • VS Code 中 Python 代码格式化工具对比与配置
  • 专科生必看!10个降AIGC工具推荐,高效避坑指南
  • Python 异步编程实战:从 asyncio 入门到并发爬虫
  • Android 春招面试经验总结:字节、腾讯、阿里等大厂技术考点
  • 基于 Docker 在 Windows 部署闲鱼 AI 自动回复系统
  • Genesis 机器人仿真场景构建与交互控制指南
  • Neo4j Desktop 2 安装与图数据库实战指南
  • AGI 大模型学习路线:从入门到就业实战指南
  • Stack-Chan 机器人开发入门:基于 M5Stack 的 JavaScript 实现

相关免费在线工具

  • 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