序列图
序列图(sequenceDiagram)描述对象之间交互的时间顺序,是"请求-响应"类文档的标准图示。竖线代表参与者随时间推进,横向箭头代表消息,配合循环、分支、并行等结构块可以表达复杂的交互逻辑。本文是 Mermaid 的序列图分册。
提示
序列图只回答一个问题:"谁、在什么时候、给谁发了什么"。参与者用 participant 声明别名,消息线 ->> 发请求、-->> 回响应,习惯成自然。
基本结构
sequenceDiagram
participant 参与者1 as 简称1
participant 参与者2 as 简称2
参与者1->>参与者2: 消息内容sequenceDiagram 为固定开头;participant 声明参与者并可用 as 起简称。
消息线
| 类型 | 写法 | 含义 |
|---|---|---|
| 实线无箭头 | A->B | 普通传递 |
| 虚线无箭头 | A-->B | 异步/返回 |
| 实线箭头 | A->>B | 主动发出消息 |
| 虚线箭头 | A-->>B | 响应 |
| 实线叉 | A-xB | 异步且终止 |
| 虚线叉 | A--xB | 异步响应 |
激活框与注解
- 激活框:消息线末尾加
+进入"处理中",加-离开,标记消息处理的时间间隔 - 注解:
Note right of A: 文字/Note left of A/Note over A,B(横跨多个参与者)
结构块
| 块 | 等价 | 用途 |
|---|---|---|
loop ... end | while 循环 | 重复发送(如重试) |
alt ... else ... end | if-else | 分支流程 |
opt ... end | 单个 if | 可选步骤 |
par ... and ... end | 并行 | 同时执行的片段 |
sequenceDiagram
participant a as 客户端
participant b as 服务端
loop 三次重试
a->>b: 发送
alt 成功
b-->>a: 200
else 失败
b-->>a: 超时
end
end跳出序列图本身看:序列图表达"时序交互",流程图 表达"过程判断",类图 表达"静态结构"——API 文档用序列图、业务流程用流程图,选型见 Mermaid。