1.1 Vue Flow 的定位

Vue Flow 本质上是一个饿了么组件库之于表单那样的存在——它把流程图编辑的标准能力封装成一套 Vue 3 组件,你拿来就能用。

它的核心架构很清晰:

打开网易新闻 查看精彩图片

  • 节点(Node)是图中的基本单元,
  • 边(Edge)是节点间的连线,
  • 手柄(Handle)是节点上的连接点。这三样构成了流程图的一切。
1.2 环境准备

在开始之前,确保你的环境满足:

  • Node.jsv20 或更高
  • Vue3.3 或更高
  • 包管理器(npm / pnpm / yarn 任选)

不在本地搭环境也行,官方提供了在线沙盒:JavaScript 版 或 TypeScript 版,浏览器打开就能跑。

1.3 安装

用你喜欢的包管理器安装 Vue Flow 核心库:

npm install @vue-flow/core
# 或者
pnpm add @vue-flow/core
# 或者
yarn add @vue-flow/core

当前最新版本:v1.48.2(2026 年 1 月发布,MIT 许可)

1.4 第一个流程图

新建一个 Vue 组件,粘贴以下代码:

solid #ddd;">

两个关键点:

  1. 样式必须导入:style.css 是必需的,不导入画布无法正常显示;theme-default.css 是可选默认主题,推荐加上
  2. 外层容器必须有高度:Vue Flow 会填满父容器的高度,如果父容器没高度,画布就看不见

⚠️ @import 不要加 scoped,否则样式不会生效。

预览效果——一个纵向排列的三节点流程图,「开始→处理中→结束」,节点可以拖拽移动,可以滚轮缩放,第一条边的动画箭头流转不绝。

1.5 核心概念速览节点数据模型

interface Node {
id: string // 唯一标识
type?: string // 节点类型(input/default/output/自定义)
position: { x: number; y: number } // 坐标位置
data: Record // 自定义数据
// 还有更多可选属性,后续章节展开
}

边数据模型

interface Edge {
id: string // 唯一标识
source: string // 源节点 ID
target: string // 目标节点 ID
type?: string // 边类型(bezier/straight/step/smoothstep/自定义)
animated?: boolean // 是否动画
data?: Record
}

三种内置节点

类型

外观

input

入口节点

蓝色边框,圆形角

default

默认节点

灰色边框,默认类型

output

输出节点

绿色边框,圆形角

四种内置边

类型

bezier(默认)

贝塞尔曲线

straight

直线

step

直角阶梯线

smoothstep

平滑阶梯线

1.6 添加附加组件

Vue Flow 自带几个增强组件,加上后体验更好:

  • Background:背景网格或点阵
  • MiniMap:右下角小地图缩略图,方便在大图中快速定位
  • Controls:左下角缩放控制按钮(放大/缩小/适配)
1.7 本章小结

你已经在 10 分钟内跑起来了第一个流程图。核心收获:

  • Vue Flow 是 Vue 3 的流程图组件库,v1.48.2
  • 三要素:节点(Node)+ 边(Edge)+ 手柄(Handle)
  • 三件套:Background + MiniMap + Controls 增强体验

下一章,我们深入节点和边的每一个配置细节,看看它们到底能玩出什么花样。