顺序图-基本语法
序列图是一个交互图,它显示进程如何相互操作以及以什么顺序进行操作。
渲染序列图
sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great!
句法
参加者
可以像本页第一个示例中那样隐式定义参与者。在图表源文本中按出现顺序呈现参与者或演员。有时,您可能想以不同于第一条消息出现的顺序来显示参与者。通过执行以下操作可以指定演员的出场顺序
sequenceDiagram
participant John
participant Alice
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
sequenceDiagram participant John participant Alice Alice->>John: Hello John, how are you? John-->>Alice: Great!
别名
演员可以具有方便的标识符和描述性标签。
sequenceDiagram
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
sequenceDiagram participant A as Alice participant J as John A->>J: Hello John, how are you? J->>A: Great!
留言内容
消息可以是实线或虚线显示的两种。
[Actor][Arrow][Actor]:Message text
类型 | 描述 |
---|---|
-> | 实线无箭头 |
-> | 虚线无箭头 |
->> | 带箭头的实线 |
->> | 带箭头的虚线 |
-X | 实线,末端带有叉号(异步) |
- X | 虚线末端带有叉号(异步) |
激活方式
可以激活和停用角色。(de)激活可以是专用的声明:
sequenceDiagram
Alice->>John: Hello John, how are you?
activate John
John-->>Alice: Great!
deactivate John
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? 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!
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!
笔记
可以在顺序图中添加注释。这是通过注解[[右| 左| 结束] [演员]:笔记内容中的文字
请参阅以下示例
sequenceDiagram
participant John
Note right of John: Text in note
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
sequenceDiagram Alice->John: Hello John, how are you? Note over Alice,John: A typical interaction
循环
loop Loop text
... statements ...
end
请参阅以下示例:
sequenceDiagram
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
sequenceDiagram Alice->John: Hello John, how are you? loop Every minute John-->Alice: Great! end
Alt键
可以在顺序图中表达替代路径。这是通过符号来完成的
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
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
背景突出显示
通过提供彩色背景矩形可以突出显示流。这是通过符号来完成的
颜色是使用rgb和rgba语法定义的。
rect rgb(0, 255, 0)
... content ...
end
Class | Description |
---|---|
actor | Style for the actor box at the top of the diagram. |
text.actor | Styles for text in the actor box at the top of the diagram. |
actor-line | The vertical line for an actor. |
messageLine0 | Styles for the solid message line. |
messageLine1 | Styles for the dotted message line. |
messageText | Defines styles for the text on the message arrows. |
labelBox | Defines styles label to left in a loop. |
labelText | Styles for the text in label for loops. |
loopText | Styles for the text in the loop box. |
loopLine | Defines styles for the lines in the loop box. |
note | Styles for the note box. |
noteText | Styles for the text on in the note boxes. |