LogicFlow 邻近连接功能详解与实战指南
2025-07-06 06:43:09作者:虞亚竹Luna
前言
LogicFlow 是一款功能强大的流程图编辑框架,提供了丰富的扩展功能。其中邻近连接(Proximity Connect)是一个非常实用的功能,它允许用户在拖动节点时自动连接到附近的节点,大大提升了绘制流程图的效率。本文将深入解析邻近连接功能的实现原理、使用方法以及配置选项。
邻近连接功能概述
邻近连接功能主要解决以下问题:
- 手动连接节点时需要精确点击锚点,操作繁琐
- 在复杂流程图中寻找正确的连接点困难
- 提高流程图绘制的效率和准确性
该功能会在用户拖动节点时,自动检测周围一定范围内的其他节点,并建立连接关系。
功能实现解析
1. 初始化配置
首先需要引入必要的依赖和初始化配置:
import LogicFlow from '@logicflow/core'
import { ProximityConnect } from '@logicflow/extension'
const config: Partial<LogicFlow.Options> = {
isSilentMode: false,
stopScrollGraph: true,
stopZoomGraph: true,
// 样式配置...
}
配置项说明:
isSilentMode
: 是否静默模式stopScrollGraph
: 禁止画布滚动stopZoomGraph
: 禁止画布缩放style
: 定义各种节点类型的默认样式
2. 插件注册与初始化
在初始化 LogicFlow 实例时,需要注册邻近连接插件:
const lf = new LogicFlow({
...config,
container: containerRef.current as HTMLElement,
grid: { size: 10 },
plugins: [ProximityConnect],
pluginsOptions: {
proximityConnect: {
enable: true, // 是否启用
distance: 100, // 连接阈值距离
reverseDirection: false // 连接方向
}
}
})
3. 数据初始化
示例中预定义了几种常见的节点类型:
const data = {
nodes: [
{ type: 'rect', text: '矩形' },
{ type: 'circle', text: '圆形' },
{ type: 'ellipse', text: '椭圆' },
{ type: 'polygon', text: '多边形' },
{ type: 'diamond', text: '菱形' },
{ type: 'text', text: '纯文本节点' },
{ type: 'html', text: 'html节点' }
]
}
功能控制面板实现
示例中提供了完整的控制面板,可以动态调整邻近连接的行为:
1. 连接阈值设置
<Input
value={distance}
onInput={(e) => setDistance(+e.target.value)}
/>
<Button onClick={() => {
lfRef.current.extension.proximityConnect.setThresholdDistance(distance)
}}>
Submit
</Button>
distance
: 设置自动连接的触发距离(像素)- 值越大,节点在更远处就会被连接
- 值越小,需要更精确地靠近才能连接
2. 连接方向控制
<Switch
value={reverse}
checkedChildren="最近节点 → 拖拽节点"
unCheckedChildren="拖拽节点 → 最近节点"
onChange={(checked) => {
setReverse(checked)
lfRef.current.extension.proximityConnect.setReverseDirection(checked)
}}
/>
reverseDirection
: 控制连接方向false
(默认): 从拖拽节点指向最近节点true
: 从最近节点指向拖拽节点
3. 功能启用/禁用
<Switch
value={enable}
checkedChildren="启用"
unCheckedChildren="禁用"
onChange={(checked) => {
setEnable(checked)
lfRef.current.extension.proximityConnect.setEnable(checked)
}}
/>
- 可以随时启用或禁用邻近连接功能
- 禁用后恢复常规的连接方式
实际应用建议
-
阈值设置:
- 简单流程图: 50-100px
- 复杂流程图: 30-50px
- 高精度需求: 10-20px
-
连接方向选择:
- 数据流: 从数据源指向处理节点
- 控制流: 从控制节点指向执行节点
- 根据业务逻辑选择合适的连接方向
-
性能考虑:
- 节点数量多时,适当减小阈值距离
- 可以结合其他交互方式使用,如双击连接等
总结
LogicFlow 的邻近连接功能通过智能检测节点距离,简化了流程图绘制过程。本文详细介绍了该功能的配置方法、控制参数以及实际应用建议。通过合理设置阈值距离和连接方向,可以显著提升用户体验和绘图效率。开发者可以根据具体业务需求,灵活调整这些参数以达到最佳效果。