Mermaid是一个基于JavaScript的图表绘制工具,它允许我们使用类似于Markdown的文本语法来创建和修改图表。它支持多种图表类型,包括流程图、时序图、状态图、类图等,是开发人员进行技术文档编写的得力助手。
时序图(Sequence Diagram)用于展示对象之间的交互过程,在电商系统设计中尤其有用。
sequenceDiagram
participant A as 参与者A
participant B as 参与者B
A->>B: 同步消息
A-->>B: 异步消息
B-->>A: 返回消息
Note over A,B: 跨参与者注释
Note right of B: 单参与者注释
sequenceDiagram
participant User as 用户
participant Order as 订单系统
participant Stock as 库存系统
participant Payment as 支付系统
User->>Order: 1. 提交订单
activate Order
Order->>Stock: 2. 检查库存
activate Stock
Stock-->>Order: 3. 返回库存状态
deactivate Stock
alt 库存充足
Order->>Payment: 4. 创建支付单
activate Payment
Payment-->>Order: 5. 返回支付链接
deactivate Payment
Order-->>User: 6. 返回订单和支付信息
else 库存不足
Order-->>User: 6. 返回库存不足提示
end
deactivate Order
opt 用户选择支付
User->>Payment: 7. 发起支付
activate Payment
Payment-->>Order: 8. 支付成功通知
Payment-->>User: 9. 支付结果反馈
deactivate Payment
end
消息类型
->>
: 实线箭头(同步消息)-->>
: 虚线箭头(异步消息)-x
: 带X的箭头(丢失的消息)--x
: 虚线带X箭头(异步丢失消息)激活框
activate
: 开始激活deactivate
: 结束激活+/-
: 自动激活/停用循环和条件
loop
: 循环alt/else
: 条件分支opt
: 可选操作par
: 并行操作状态图(State Diagram)用于描述系统中的状态转换过程,非常适合表达订单状态、支付状态等业务流程。
stateDiagram-v2
[*] --> State1
State1 --> State2
State2 --> [*]
state State1 {
[*] --> SubState1
SubState1 --> [*]
}
stateDiagram-v2
[*] --> Created: 创建订单
Created --> Pending: 等待支付
Pending --> Paid: 支付成功
Pending --> Cancelled: 超时/取消
Paid --> Processing: 开始处理
Processing --> Shipped: 已发货
Shipped --> Delivered: 已送达
Delivered --> Completed: 确认收货
Delivered --> Returning: 申请退货
Returning --> Returned: 退货完成
state Paid {
[*] --> StockChecking
StockChecking --> StockConfirmed
StockConfirmed --> [*]
}
state Returning {
[*] --> WaitingReturn
WaitingReturn --> InTransit
InTransit --> Received
Received --> [*]
}
状态类型
转换类型
特殊状态
安装插件
使用方式
markdown```mermaid
// 图表代码
安装插件
配置Mermaid支持
GitLab
GitHub
Mermaid是一个强大的图表工具,特别适合用于技术文档的编写。通过本文的介绍,我们重点掌握了:
时序图的应用
状态图的使用
工具集成
通过合理使用Mermaid,我们可以更好地进行系统设计、文档编写和团队协作。在电商等复杂业务场景中,图表化的表达方式能够大大提高沟通效率和理解准确性。
本文作者:大哥吕
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!