模式-有限状态机和状态图
有限状态机包含五个重要部分:
- 初始状态值(initial state)
- 有限的一组状态(states)
- 有限的一组事件(events)
- 由事件驱动的一组状态转移关系(transitions)
- 有限的一组最终状态
这里举个例子:
当我们fetch的时候会返回一个Promise, 这时它进入pending状态
- 如果它被resolve, 进入fullfilled状态
- 如果它被reject, 进入rejected状态
这里的fullfilled和rejected就是最终状态.
XState
XState是对有限状态机(finite state machine)和状态图(statechars)面向现代web开发的js实现.
支持了很多生态:
- xstate: 有限状态机和状态图的核心库 + 解释器
- @xstate/fsm: 最小化的有限状态机库
- @xstate/graph: 图遍历工具
- @xstate/react: 针对 React 应用的 hooks 和 utilities
- @xstate/vue: 针对 Vue 应用的 composition functions 和 utilities
- @xstate/test: 基于 model 的测试工具
- @xstate/inspect: 可视化库