ZenUML
序列图是一种交互图,它显示了进程如何相互操作以及操作顺序。
Mermaid可以使用ZenUML渲染序列图。请注意,ZenUML使用与Mermaid中原始序列图不同的语法。
Code:
mermaid
语法
参与者
参与者可以像本页第一个示例中那样隐式定义。参与者或行为者按其在图表源文本中出现的顺序呈现。有时,您可能希望以与他们在第一个消息中出现的顺序不同的顺序显示参与者。可以通过执行以下操作来指定行为者出现的顺序:
Code:
mermaid
注释器
如果您特别想使用符号而不是仅包含文本的矩形,则可以使用注释器语法声明参与者,如下所示。
Code:
mermaid
以下是可用的注释器:
别名
参与者可以有一个方便的标识符和一个描述性标签。
Code:
mermaid
消息
消息可以是:
- 同步消息
- 异步消息
- 创建消息
- 回复消息
同步消息
您可以将其视为编程语言中的同步(阻塞)方法。
Code:
mermaid
异步消息
您可以将其视为编程语言中的异步(非阻塞)方法。 触发事件并忽略它。
Code:
mermaid
创建消息
我们使用new
关键字来创建对象。
Code:
mermaid
回复消息
有三种方法可以表达回复消息:
Code:
mermaid
第三种方式@return
很少使用,但是当您想返回到上一级时它很有用。
Code:
mermaid
嵌套
同步消息和创建消息可以使用{}
自然地嵌套。
Code:
mermaid
注释
可以使用// comment
语法向序列图添加注释。注释将呈现于消息或片段之上。其他位置的注释将被忽略。支持Markdown。
请参见下面的示例:
Code:
mermaid
循环
可以在ZenUML图中表达循环。这是通过以下任何一种表示法完成的:
- while
- for
- forEach, foreach
- loop
zenuml
while(condition) {
...statements...
}
请参见下面的示例:
Code:
mermaid
Alt
可以在序列图中表达备选路径。这是通过以下表示法完成的
zenuml
if(condition1) {
...statements...
} else if(condition2) {
...statements...
} else {
...statements...
}
请参见下面的示例:
Code:
mermaid
Opt
可以渲染opt
片段。这是通过以下表示法完成的
zenuml
opt {
...statements...
}
请参见下面的示例:
Code:
mermaid
并行
可以显示并行发生的動作。
这是通过以下表示法完成的
zenuml
par {
statement1
statement2
statement3
}
请参见下面的示例:
Code:
mermaid
Try/Catch/Finally (Break)
可以在流程中指示序列的停止(通常用于模拟异常)。
这是通过以下表示法完成的
try {
...statements...
} catch {
...statements...
} finally {
...statements...
}
请参见下面的示例:
Code:
mermaid
集成到你的库/网站中
Zenuml 使用实验性的延迟加载和异步渲染功能,这些功能将来可能会发生变化。
您可以使用此方法将包含 zenuml 图表的 mermaid 添加到网页:
html
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
import zenuml from 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml@0.1.0/dist/mermaid-zenuml.esm.min.mjs';
await mermaid.registerExternalDiagrams([zenuml]);
</script>