一文读懂Mermaid:用代码绘制流程图就是这么简单

在日常工作中,我们经常需要绘制流程图、时序图、类图等可视化图表来梳理逻辑、汇报工作。传统的绘图工具如Visio、DrawIO虽然功能强大,但拖拽式操作效率不高,且图表与文档的兼容性较差。而Mermaid的出现,彻底改变了这一现状——它允许我们用简洁的代码语法快速生成高质量图表,还能无缝嵌入到Markdown文档中。今天,我们就来详细聊聊Mermaid的使用方式,带你解锁“代码绘图”的新技能。

一、初识Mermaid:什么是Mermaid?

Mermaid是一款基于JavaScript的开源图表绘制工具,它的核心优势在于“文本驱动绘图”。简单来说,你不需要手动拖拽图形和连接线条,只需要按照Mermaid定义的语法规则编写文本代码,工具就会自动渲染出规范、美观的图表。
目前,Mermaid已被广泛支持,像VS Code(安装插件后)、GitHub、GitLab、Notion等主流工具和平台都能直接解析Mermaid代码并显示图表,这意味着你可以在写文档的同时直接绘制图表,极大提升了内容创作的连贯性。

二、Mermaid核心使用方式:从语法到渲染

Mermaid的使用流程非常简单:编写语法代码 → 工具解析渲染。其语法规则针对不同图表类型有所差异,但整体逻辑一致。下面我们以最常用的流程图和时序图为例,详解其使用方法。

1. 基础结构:所有图表的“通用框架”

无论绘制哪种图表,Mermaid代码都需要包裹在特定的标记中(不同平台标记略有差异,以Markdown为例):

// 这里写Mermaid图表代码
图表类型
  代码内容...

其中,“图表类型”是关键,需要根据需求指定,比如流程图用“graph”,时序图用“sequenceDiagram”,类图用“classDiagram”等。

2. 实战1:绘制流程图(最常用场景)

流程图用于展示任务的执行步骤、逻辑分支(如if-else)、循环等,Mermaid中用“graph”指定,同时需要定义图表的方向(如从上到下、从左到右)。
步骤1:确定图表方向
方向通过首字母指定,常见值如下:

  • TD:Top-Down(从上到下,默认方向)
  • LR:Left-Right(从左到右,适合步骤较多的场景)
  • BT:Bottom-Top(从下到上)
  • RL:Right-Left(从右到左)
    步骤2:定义节点与连接关系
    节点代表流程中的“步骤”,用文本表示,可添加样式;连接关系代表“流向”,用不同符号表示不同逻辑(如普通流向、条件流向)。
    常见连接符号:
  • →:普通流向(无逻辑含义)
  • –>:虚线流向
  • |->:带条件的流向(配合if等逻辑)
    步骤3:完整案例:用户登录流程
graph TD
  A[用户访问登录页] → B[输入账号密码]
  B → C{验证信息}
  C -- 验证成功 --> D[跳转到首页]
  C -- 验证失败 --> E[提示错误信息]
  E → B
  D → F[显示用户信息]

渲染后的效果:从上到下展示登录流程,包含“验证成功”和“验证失败”两个分支,失败后会返回重新输入步骤,逻辑清晰直观。

3. 实战2:绘制时序图(接口交互场景)

时序图用于展示不同角色(如用户、前端、后端、数据库)之间的交互顺序,尤其适合接口联调、需求评审时梳理交互逻辑,用“sequenceDiagram”指定。
核心语法:角色定义 + 消息流向

  • 角色:用“participant”定义,也可省略直接使用角色名
  • 消息流向:用“->”表示同步消息,“–>”表示异步消息,箭头上方可添加消息内容
    案例:用户查询订单信息流程
sequenceDiagram
  participant U as 用户
  participant F as 前端页面
  participant B as 后端接口
  participant D as 数据库

  U -->> F: 点击“我的订单”
  F ->> B: 发送查询请求(用户ID)
  B ->> D: 执行SQL查询(根据用户ID)
  D -->> B: 返回订单数据
  B -->> F: 返回格式化后的订单信息
  F -->> U: 展示订单列表
用户 前端页面 后端接口 数据库 点击“我的订单” 发送查询请求(用户ID) 执行SQL查询(根据用户ID) 返回订单数据 返回格式化后的订单信息 展示订单列表 用户 前端页面 后端接口 数据库

渲染后的效果:清晰展示从用户操作到数据库查询,再到结果展示的完整时序,每个交互步骤的发起者和接收者一目了然。

三、进阶技巧:让图表更美观、更实用

1. 自定义节点样式

通过“style”语句可以修改节点的颜色、边框、字体等,让关键步骤更突出。例如修改登录流程中“验证失败”节点的样式:

graph TD
  A[用户访问登录页] → B[输入账号密码]
  B → C{验证信息}
  C -- 验证成功 --> D[跳转到首页]
  C -- 验证失败 --> E[提示错误信息]
  E → B
  D → F[显示用户信息]
  style E fill:#ffcccc,stroke:#ff0000,stroke-width:2px

2. 常用图表类型扩展

除了流程图和时序图,Mermaid还支持多种高频图表,语法逻辑类似,只需替换“图表类型”即可:

  • 类图(classDiagram):用于面向对象设计,展示类的属性和方法
  • 甘特图(gantt):用于项目进度规划,展示任务的开始时间、结束时间和进度
  • 饼图(pie):用于数据占比展示,如用户来源分布
    四、快速上手工具推荐
  1. 在线编辑器:Mermaid Live Editor(官网),实时预览代码渲染效果,支持导出PNG、SVG等格式。
  2. 本地工具:VS Code安装“Mermaid”插件,编写Markdown时直接渲染,适合本地文档创作。
  3. 协作平台:GitHub、GitLab直接支持Mermaid,提交代码时自动渲染,方便团队协作查看。

五、总结:Mermaid的核心优势

Mermaid之所以能成为程序员和职场人的“绘图神器”,核心在于它解决了传统绘图工具的痛点:代码化编写提升效率、跨平台兼容无缝嵌入、语法简洁易上手。无论是写技术文档、做项目汇报,还是梳理业务逻辑,Mermaid都能帮你快速生成专业图表。
赶紧打开在线编辑器,尝试用上面的案例代码实操一遍,相信你很快就能掌握Mermaid的使用技巧,让图表绘制变得高效又轻松!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐