📢 还在用Visio、ProcessOn画流程图?试试用代码画图,让你的技术文档瞬间专业起来!
🎯 前言:为什么程序员都在用Mermaid?
作为开发者,你是否遇到过这些痛点:
- ❌ 画流程图要打开臃肿的Visio或在线工具
- ❌ 图表无法与代码一起做版本管理
- ❌ 修改图表时要重新拖拽调整布局,耗时费力
- ❌ 团队协作时图表格式不统一,难以维护
Mermaid 的出现完美解决了这些问题!它是一个基于JavaScript的图表绘制工具,让你用简单的文本语法就能生成专业的流程图、时序图、类图等,真正实现了"代码即图表"。
✨ Mermaid的核心优势
| 传统绘图工具 | Mermaid |
|---|---|
| 需要拖拽、对齐 | 纯文本描述,自动布局 |
| 难以版本控制 | 可以提交到Git |
| 修改麻烦 | 改文本即可 |
| 需要安装软件 | 支持Markdown,集成度高 |
📚 一、Mermaid基础语法入门
1.1 第一个流程图:Hello Mermaid
最简单的流程图示例:
graph TD
A[开始] --> B{是否学会Mermaid?}
B -->|是| C[恭喜你]
B -->|否| D[继续学习]
D --> B
语法解析:
graph TD:定义图表类型(graph)和方向(TD = Top Down,从上到下)A[开始]:定义节点A,显示文本"开始",方括号表示矩形-->:箭头连接符{}:菱形节点,通常表示判断|文本|:在箭头上显示文字
1.2 图表方向控制
graph LR %% LR = Left to Right(从左到右)
graph TD %% TD = Top Down(从上到下)
graph BT %% BT = Bottom to Top(从下到上)
graph RL %% RL = Right to Left(从右到左)
🔥 二、流程图(Flowchart)实战
2.1 节点形状大全
Mermaid支持多种节点形状,适用不同场景:
graph LR
A[矩形节点]
B(圆角矩形)
C([体育场形])
D[[子程序]]
E[(数据库)]
F((圆形))
G>不对称矩形]
H{菱形}
I{{六边形}}
J[/平行四边形/]
K[\反向平行四边形\]
L[/梯形\]
M[\反向梯形/]
2.2 连接线样式
graph LR
A --> B %% 实线箭头
C --- D %% 实线无箭头
E -.-> F %% 虚线箭头
G -.- H %% 虚线无箭头
I ==> J %% 粗箭头
K --文字说明--> L %% 带文字的箭头
2.3 实战案例:用户登录流程
graph TD
Start([用户访问登录页]) --> Input[输入账号密码]
Input --> Valid{验证信息}
Valid -->|格式正确| Check[调用后端API]
Valid -->|格式错误| Error1[显示错误提示]
Error1 --> Input
Check --> Auth{认证结果}
Auth -->|成功| Token[生成Token]
Auth -->|失败| Error2[显示登录失败]
Error2 --> Input
Token --> Save[(保存到Cookie)]
Save --> Redirect[跳转到首页]
Redirect --> End([登录完成])
style Start fill:#e1f5e1
style End fill:#e1f5e1
style Error1 fill:#ffe1e1
style Error2 fill:#ffe1e1
高级技巧: 使用style可以给节点添加自定义颜色!
⏱️ 三、时序图(Sequence Diagram)
时序图特别适合展示API调用、系统交互流程。
3.1 基础语法
sequenceDiagram
participant U as 用户
participant F as 前端
participant B as 后端
participant D as 数据库
U->>F: 点击登录按钮
F->>B: POST /api/login
activate B
B->>D: 查询用户信息
activate D
D-->>B: 返回用户数据
deactivate D
B-->>F: 返回Token
deactivate B
F->>U: 跳转到首页
3.2 高级特性
sequenceDiagram
autonumber %% 自动编号
Alice->>John: 你好John!
loop 健康检查
John->>John: 对抗疾病
end
Note right of John: 理性思考!
John-->>Alice: 很好!
John->>Bob: 你呢?
Bob-->>John: 还不错
alt 天气晴朗
John->>Bob: 去爬山
else 天气下雨
John->>Bob: 待在家
end
par 并行任务
John->>Alice: 任务1
and
John->>Bob: 任务2
end
关键字说明:
autonumber:自动给消息编号loop:循环结构alt/else:条件分支par/and:并行执行activate/deactivate:激活/停用生命周期
📦 四、类图(Class Diagram)
适合展示系统架构、类关系。
classDiagram
class Animal {
+String name
+int age
+eat()
+sleep()
}
class Dog {
+String breed
+bark()
}
class Cat {
+String color
+meow()
}
Animal <|-- Dog : 继承
Animal <|-- Cat : 继承
class Owner {
+String name
+List~Animal~ pets
+feedPet()
}
Owner "1" --> "*" Animal : 拥有
关系符号:
<|--:继承*--:组合o--:聚合-->:关联..>:依赖..|>:实现
📅 五、甘特图(Gantt Chart)
项目管理必备!
gantt
title 项目开发计划
dateFormat YYYY-MM-DD
section 需求阶段
需求分析 :done, des1, 2024-01-01, 2024-01-05
原型设计 :done, des2, 2024-01-06, 2024-01-10
section 开发阶段
前端开发 :active, dev1, 2024-01-11, 15d
后端开发 : dev2, 2024-01-11, 20d
section 测试阶段
功能测试 : test1, after dev2, 5d
上线部署 :crit, deploy, after test1, 2d
🎨 六、其他实用图表类型
6.1 饼图
pie title 编程语言使用占比
"Python" : 35
"JavaScript" : 30
"Java" : 20
"Go" : 10
"其他" : 5
6.2 状态图
stateDiagram-v2
[*] --> 待支付
待支付 --> 已支付: 支付成功
待支付 --> 已取消: 超时/手动取消
已支付 --> 配送中: 商家发货
配送中 --> 已完成: 确认收货
已完成 --> [*]
已取消 --> [*]
6.3 ER图(实体关系图)
erDiagram
USER ||--o{ ORDER : places
USER {
int id PK
string name
string email
}
ORDER ||--|{ ORDER_ITEM : contains
ORDER {
int id PK
date orderDate
int userId FK
}
PRODUCT ||--o{ ORDER_ITEM : "ordered in"
PRODUCT {
int id PK
string name
decimal price
}
🚀 七、推荐工具:让Mermaid使用更简单
7.1 传统使用方式
- Markdown编辑器:Typora、VSCode + Markdown Preview Enhanced
- 文档平台:语雀、Notion、GitHub
- 官方在线编辑器:https://mermaid.live/
7.2 ⭐ 强烈推荐:Diagrama.cn - AI智能图表生成器
如果你想要更高效的体验,强烈推荐 Diagrama.cn !
🌟 核心优势:
1️⃣ AI智能生成 - 告别手写语法
不用记语法,直接用自然语言描述需求:
传统方式:
你需要写:graph TD; A[开始] --> B{判断}...
Diagrama AI方式:
你只需说:"帮我画一个用户登录的流程图"
AI自动生成完整的Mermaid代码!
2️⃣ 三合一平台 - 支持多种图表语言
- ✅ Mermaid:流程图、时序图、类图、甘特图…
- ✅ PlantUML:复杂UML图表
- ✅ Graphviz:架构图、关系图
一个平台搞定所有需求!
3️⃣ 实时预览 - 所见即所得
左侧编辑,右侧实时渲染,修改后立即看到效果。
4️⃣ 一键导出 - 多格式支持
- 导出PNG/SVG高清图片
- 导出源代码
- 分享在线链接
5️⃣ 完全免费 - 无需注册
访问 diagrama.cn 直接使用,无需登录!
💡 使用场景:
- 📝 写技术文档时快速生成配图
- 👥 团队会议时实时绘制架构图
- 🎓 学习分享时制作教程图表
- 📊 项目管理时创建甘特图
立即体验: https://diagrama.cn/
💡 八、实战技巧与最佳实践
8.1 代码组织建议
使用subgraph可以让复杂流程更清晰!
8.2 注释的使用
8.3 主题美化
Mermaid支持多种主题:
default:默认主题forest:森林绿dark:暗黑模式neutral:中性色
📊 九、Mermaid vs 其他工具对比
| 特性 | Mermaid | PlantUML | Graphviz | Visio |
|---|---|---|---|---|
| 学习成本 | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Markdown集成 | ✅ | ✅ | ❌ | ❌ |
| 在线使用 | ✅ | ✅ | ✅ | ❌ |
| 图表类型 | 丰富 | 非常丰富 | 一般 | 丰富 |
| 适用场景 | 文档、博客 | 复杂UML | 关系图 | 商业场景 |
结论: Mermaid最适合程序员写技术文档!
🎓 十、常见问题FAQ
Q1:Mermaid图表在优快云不显示怎么办?
A: 优快云已支持Mermaid,使用以下语法:
```mermaid
graph TD
A --> B
```
Q2:如何导出高清图片?
A: 推荐使用 Diagrama.cn,支持一键导出PNG/SVG。
Q3:Mermaid能画思维导图吗?
A: 可以!使用mindmap类型:
mindmap
root((Mermaid学习))
基础语法
流程图
时序图
高级特性
主题美化
交互功能
实战应用
技术文档
项目管理
Q4:图表太复杂时怎么优化?
A:
- 使用
subgraph分组 - 拆分成多个小图
- 使用AI工具(如Diagrama)自动优化布局
🎯 总结
核心要点回顾:
✅ Mermaid是什么:基于文本的图表绘制工具,支持流程图、时序图、类图等多种类型
✅ 为什么用Mermaid:版本控制友好、Markdown集成、自动布局、学习成本低
✅ 怎么用Mermaid:掌握基本语法 → 实践常见图表 → 结合工具提效
学习路径建议:
- 第一周:熟悉流程图和时序图(最常用)
- 第二周:学习类图和ER图(做架构设计)
- 第三周:掌握甘特图和状态图(项目管理)
- 进阶:使用 Diagrama.cn 的AI功能,10倍提升效率!
🔗 相关资源
- 📘 官方文档:https://mermaid.js.org/
- 🚀 AI图表工具:diagrama.cn
- 💬 欢迎在评论区分享你的Mermaid使用心得!
💖 如果这篇文章对你有帮助,请点赞👍 + 收藏⭐ + 关注🔔,你的支持是我创作的最大动力!
1102

被折叠的 条评论
为什么被折叠?



