时序图 Sequence Diagram
Mermaid 手册 · 第 03 篇 / 共 16 篇
参与者、消息箭头、生命线激活、逻辑块(alt/loop/par/opt/critical/break)、分组框与序号。
适用版本:Mermaid 11.x 主线版本;标有 beta 的图表类型语法可能随版本演进。
时序图 Sequence Diagram
用于表达"谁在什么时间给谁发了什么消息",是接口文档、协议说明、链路分析的主力。
基础示例
参与者声明
participant A %% 普通参与者 participant A as 别名 %% 带显示名 actor A %% 人形图标 actor A as 用户participant的声明顺序决定左右排列顺序;未声明而直接出现的参与者会按首次出现顺序自动创建。
消息箭头
| 语法 | 外观 | 语义 |
|---|---|---|
A->B | 实线,无箭头 | 少见 |
A-->B | 虚线,无箭头 | 少见 |
A->>B | 实线 + 实心箭头 | 同步调用 |
A-->>B | 虚线 + 实心箭头 | 异步返回 / 响应 |
A-xB | 实线 + 叉 | 消息丢失 / 失败 |
A--xB | 虚线 + 叉 | 异步失败 |
A-)B | 实线 + 开箭头 | 异步消息 |
A--)B | 虚线 + 开箭头 | 异步消息(返回) |
A<<->>B | 双向实线 | 双向通信(较新版本) |
A<<-->>B | 双向虚线 | 双向通信(较新版本) |
生命线激活
activate S %% 或 S->>+S: 简写 deactivate S %% 或 S-->>-S: 简写简写形式把+/-直接放在箭头上,写起来更紧凑:
逻辑块
循环
条件分支
可选(单分支)
并行
临界区 / 断言(critical)
强制中断(break)
注释
Note left of A: 左侧注释 Note right of A: 右侧注释 Note over A: 覆盖单个参与者 Note over A,B: 跨参与者注释支持<br/>换行(在允许 HTML 的渲染端)。
分组框(box)
给一组参与者加外框与配色,适合按"内网/外网""客户端/服务端"划分:
序号与自动编号
autonumber %% 自动给每条消息编号 autonumber 10 %% 从 10 开始 autonumber 10 5 %% 从 10 开始,步长 5参与者创建与销毁
其他配置
%%{init: {'sequence': {'mirrorActors': false, 'showSequenceNumbers': true, 'wrap': true}}}%%常用项:mirrorActors(底部是否镜像参与者)、showSequenceNumbers、wrap、messageAlign、actorMargin、diagramMarginX/Y。