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

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

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

墨染流年发布于 2026/4/5更新于 2026/10/25124 浏览
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. 总结

更多推荐文章

查看全部
  • 本地部署开源大模型教程:LangChain + Streamlit + Llama
  • 车端部署DeepSeek-R1蒸馏模型:做法与取舍
  • Rust 错误处理与测试:打造健壮可维护应用的核心实践
  • LLaMA Factory 大模型训练与微调指南
  • 基于安全上下文检索的野外越狱攻击可扩展防御
  • 两两交换链表中的节点
  • Java 项目中基于 Log4j 的日志工具类封装实践
  • 2025 AI IDE 全面对比:Trae、Copilot、Windsurf、Cursor 谁值得个人开发者入手?
  • 利用 GPT4 和 DALL·E 制作 AI 绘画短视频指南
  • PostgreSQL 动态分区裁剪技术:查询性能优化解析
  • Java 集合常见问题总结(1)
  • GitHub 代码搜索实战:工具推荐与高级语法详解
  • C++ 竞赛代码风格规范建议
  • Alas 脚本碧蓝航线自动化配置指南
  • 数据结构与算法:C++ 堆的实现与原理详解
  • ToolkenGPT:利用工具嵌入增强大型语言模型
  • NASA 火星任务软件测试:利用 AIGC 模拟极端环境攻击
  • 前端文件下载实战:从原理到最佳实践
  • AI Agent 基础架构与核心组件详解
  • C++11 核心特性:列表初始化与右值引用移动语义详解

相关免费在线工具

  • 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