迁移就是一根箭头。箭头后面的冒号后面是引发它的事件。
stateDiagram-v2
[*] --> Idle
Idle --> Running : start
Running --> Idle : stop同一个 [*] 标记两件事都管:指向它的箭头是结束,从它出发的箭头是开始。
stateDiagram-v2
[*] --> Draft
Draft --> Published
Published --> [*]一个提出问题的菱形。每根出发的箭头就是一个答案。
stateDiagram-v2
[*] --> Check
Check --> Decide <<choice>>
Decide --> Accepted : if valid
Decide --> Rejected : if invalid花括号打开一个复合状态。它的内部状态就住在里面。
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : press
NumLockOn --> NumLockOff : press
}
Active --> [*]分叉把流拆开,汇合要等每一条分支都到齐。
stateDiagram-v2
[*] --> Split <<fork>>
Split --> A
Split --> B
A --> Merge <<join>>
B --> Merge
Merge --> [*]注释挂在某个状态上,或者横跨两个状态浮着。
stateDiagram-v2
[*] --> Draft
Draft --> Review
note right of Draft
Still editable
end note和流程图同一个关键字。默认自上而下。
stateDiagram-v2
direction LR
[*] --> Idle
Idle --> Running : start