• 使用markdown画流程图、时序图等


    概述

    能表示的图类型还有很多,比如:

    • sequenceDiagram时序图

    • classDiagram类图

    • stateDiagram:状态图

    • erDiagram:ER图

    • gantt: 甘特图

    • pie:饼图

    • requirementDiagram: 需求图

    流程图

    流程图代码以「graph 《布局方向》」开头

    布局

    TB,从上到下
    TD,从上到下
    BT,从下到上
    RL,从右到左
    LR,从左到右
    
    • 1
    • 2
    • 3
    • 4
    • 5

    例如

    ```mermaid
    流程图/时序图代码
    ```

    符号

    起止框

    起止框

    在这里插入图片描述

    处理框

    处理框

    在这里插入图片描述

    可以使用 HTML 中的实体字符。

    双引号:"

    在这里插入图片描述

    判断框

    判断框

    在这里插入图片描述

    连接

    连接

    在这里插入图片描述

    连接样式

    实线

    带文字实线箭头
    文字描述
    A
    B

    在这里插入图片描述

    无文字实线箭头
    A
    B

    在这里插入图片描述

    无文字实线无箭头
    A
    B

    在这里插入图片描述

    带文字实线无箭头
    文字描述
    A
    B

    在这里插入图片描述

    虚线

    无文字虚线箭头
    A
    B

    注意有中间
    在这里插入图片描述

    有文字虚线箭头
    文字
    A
    B

    注意有中间
    在这里插入图片描述

    其他

    其他类似实线

    综合示例

    通过
    不通过
    接口请求
    参数校验
    校验不通过
    处理业务逻辑
    结束
    	` ``mermaid
    	graph TB
    	    A(接口请求) --> B[参数校验]
    	    B[参数校验] --> C{校验通过}
    	    C{校验通过} -- 通过 --> d[处理业务逻辑]
    	    C{校验不通过} -- 不通过 --> e[结束]
    	    d[处理业务逻辑] --> e(结束)
    	 ```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    时序图

    时序图代码以「sequenceDiagram」开头

    lilei hanmeimei How are you. 对象A的描述(提示) Fine, Thank you. 对象B的描述 我走了 lilei hanmeimei
    	```mermaid
    	sequenceDiagram
    	    participant A as lilei
    	    participant B as hanmeimei
    	    A ->> B: How are you.
    	    Note left of A: 对象A的描述(提示)
    	    B -->> A: Fine, Thank you.
    	    Note right of B: 对象B的描述
    	    A -x B: 我走了
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    参与者

    参与者名称 参与者名称
    	```mermaid
    	sequenceDiagram
    	    participant 别名 as 参与者名称
    	```
    
    • 1
    • 2
    • 3
    • 4
    参与者名称 参与者名称
    	```mermaid
    	sequenceDiagram
    	    participant 参与者名称
    	```
    
    • 1
    • 2
    • 3
    • 4

    注解

    左边注解

     Note left of 参与者: 参与者的描述(提示)
    
    • 1

    右边注解

     Note right of 参与者: 参与者的描述(提示)
    
    • 1

    在xx之上

    Note over 参与者1,参与者2 : 哈哈哈
    
    • 1
    参与者名称1 参与者名称2 参与者名称1的描述(提示) 参与者名称2的描述 over1的描述 over2的描述 over21的描述 over12的描述 参与者名称1 参与者名称2
    	```mermaid
    	sequenceDiagram
    	    participant 别名1 as 参与者名称1
    	    participant 别名2 as 参与者名称2
    	    Note left of 别名1: 参与者名称1的描述(提示)
    	    Note right of 别名2: 参与者名称2的描述
    	    Note over 别名1,别名1: over1的描述
    	    Note over 别名2,别名2: over2的描述
    	    Note over 别名2,别名1: over21的描述
    	    Note over 别名1,别名2: over12的描述
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    消息

    交互时一方对另一方的操作(比如接口调用)或传递出的信息。

    格式

    <参与者> <箭头> <参与者> : <描述文本>
    
    • 1

    箭头

    ->> 显示为实线箭头(主动发出消息)
    -->> 显示为虚线箭头(响应)
    -x 显示为末尾带「X」的实线箭头(异步消息)
    
    • 1
    • 2
    • 3

    举例

    参与者名称1 参与者名称2 who are you 参与者名称1的描述(提示) i am 参与者名称2 参与者名称2的描述 bye! 参与者名称1 参与者名称2
    	```mermaid
    	sequenceDiagram
    	    participant 别名1 as 参与者名称1
    	    participant 别名2 as 参与者名称2
    	    别名1 ->> 别名2: who are you
    	    Note left of 别名1: 参与者名称1的描述(提示)
    	    别名2 -->> 别名1: i am  参与者名称2
    	    Note right of 别名2: 参与者名称2的描述
    	    别名1 -x 别名2: bye!
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    激活框

    从消息接收方的时间线上标记一小段时间,表示对消息进行处理的时间间隔。
    格式

    <参与者> <箭头> [+/-]: <描述文本>。
    
    • 1
    A1 A2 111 222 A1 A2
    	```mermaid
    	sequenceDiagram
    	    A1 ->> + A2: 111
    	    A2 -->> - A1: 222
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5

    循环

    相当于编程代码中的 while 循环 循环格式为:

    loop 循环的描述
        消息
    end
    
    • 1
    • 2
    • 3
    A1 A2 111 222 消息1 响应1 loop [一天七次] A1 A2
    	```mermaid
    	sequenceDiagram
    	     A1 ->> + A2:  111
    		 A2 -->> - A1: 222
    	    loop 一天七次
    	            A1 ->> + A2:  消息1
    	    		A2 -->> - A1: 响应1
    	    end
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    选择(alt)

    类似于 switch语句

    学生 学校 查询成绩 成绩 优秀 及格 不及格 alt [成绩 > 90] [60 <= 成绩 < 90] [成绩 < 60] 学生 学校
    	```mermaid
    	sequenceDiagram
    	    学生 ->> 学校 : 查询成绩
    	    学校 -->> 学生 : 成绩
    	
    	    alt 成绩 > 90
    	        学生 ->> 学校 : 优秀
    	    else 60 <= 成绩 < 90
    	        学生 ->> 学校 : 及格
    	    else 成绩 < 60
    	        学生 ->> 学校 : 不及格
    	    end
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    可选

    类似于单个分支的 if 语句

    学生 学校 我成绩及格再出成绩 你及格了 opt [成绩 > 60] 学生 学校
    	```mermaid
    	sequenceDiagram
    	    学生 ->> 学校 : 我成绩及格再出成绩
    	
    	    opt 成绩 > 60
    	        学校  -->> 学生 : 你及格了
    	    end
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    并行

    A B 工作做什么 刷微博 听音乐 par [开始摸鱼] 9点下班回家 A B
    	```mermaid
    	sequenceDiagram
    	    A ->> B: 工作做什么
    	
    	    par 开始摸鱼
    	        B ->> B : 刷微博
    	    and
    	        B ->> B : 听音乐
    	    end
    	
    	    B -->> A : 9点下班回家
    	```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    【无标题】
    在 kubernetes 环境中实现 gRPC 负载均衡
    Linux操作
    华为OD技术面试案例3-2024年
    天翼云安全一体化纵深体系是怎么炼成的?
    C#winfrom端屏幕截图功能的简单实现(修改了屏幕的缩放比例后,截图功能异常,慎用!!!)
    如何在 Windows Server 2022 阿里云服务器上搭建自己的 MQTT 服务器之一Apache-Apollo服务器。
    基于SAE堆叠自编码器的单维时间序列预测研究(matlab代码实现)
    记-数据库事务隔离级别
    python 根据两个向量,求的之间的旋转矩阵:
  • 原文地址:https://blog.csdn.net/yyuggjggg/article/details/128088538