Markdown mermaid种草(8)_ 序列图
文章目录
1 序列图简介
序列图是一个交互图,显示过程如何相互操作以及以何种顺序运行.F
2 序列图语法
2.1 参与者
参与者可以含蓄地定义为此页面上的第一个示例.参与者或参与者在图表源文本中按外观顺序呈现.有时,您可能希望以不同于第一条消息中显示参与者的顺序.可以通过以下方式指定演员的出场顺序:
sequenceDiagram
participant John
participant Alice
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
2.2 别名
参与者可以通过as
语句指定别名,如下所示:
sequenceDiagram
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
2.3 消息
消息可以是两个显示实线或虚线.
[对象1][箭头][对象2]: 消息文本
箭头类型 | 描述 | 备注 |
---|---|---|
-> | 不带箭头的实线 | |
–> | 不带箭头的虚线 | |
->> | 带箭头的实线 | |
–>> | 带箭头的虚线 | |
-x | 实线末端是一个十字 | |
–x | 虚线末端是一个十字 | |
-) | 在末端有一个打开箭头的实心线(不对称) | typora不支持 |
–) | 末端有一个打开的箭头的虚线(不对称) | typora不支持 |
2.4 激活与抑止
允许对参与者进行激活和抑止,可以是专用声明的方式:
sequenceDiagram
Alice->>John: Hello John, how are you?
activate John
John-->>Alice: Great!
deactivate John
也可以在对象前面加上 + / - 号前缀来进行激活和抑止:
sequenceDiagram
Alice->>+John: Hello John, how are you?
John-->>-Alice: Great!
也可以对同一个对象做栈激活/栈抑止:
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
2.5 标注
可以对序列图进行标注,标注的方法是以Note作为引导词进行书写:
Note [ right of | left of | over ] [Actor] : Text in note content
sequenceDiagram
participant John
Note right of John: Text in note
也可以创建横跨两个参与者的标注:
sequenceDiagram
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
2.6 循环
可以使用以下语法实现循环:
loop 循环文本
··· 语句 ···
end
Tips: 在序列图中,end常会造成语句中断,如果文本中需要使用’end’,为了避免造成语句歧义,可以用括号() [] {} 把单词end括起来,如(end)[end]{end}
sequenceDiagram
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
2.7 可选分支
序列图中如果需要实现带else的可选分支,可以用alt引导词,如果需要实现不带else的可选分支,可以用opt引导词,分别如下:
alt Describing text
... statements ...
else
... statements ...
end
opt Describing text
... statements ...
end
举例如下:
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
2.8 并行分支
序列中表示并行分支时,使用par作为引导词,语法如下:
par [Action 1]
... statements ...
and [Action 2]
... statements ...
and [Action N]
... statements ...
end
举例如下:
还支持嵌套
2.9 消息序号
使用autonumber关键字可以使消息能按顺序自动编号:
sequenceDiagram
autonumber
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!