JavaScript事件状态机

jab*_*jab 31 javascript state-machine

有人知道状态机的任何javascript实现吗?我的目标是设置一个状态机实现,将事件绑定到状态转换.因此,如果用户单击按钮,则状态将被更改,并且此状态可能会定义要更改的对象中的某些值.

我希望这是一个状态机,因为会有一个规则json文件,它允许在调用某些事件时指示各种对象的值发生了什么变化.因为这将在文件中构建,我认为很容易将该信息解析为状态机对象.

小智 35

js中有两个用于有限状态机的主库:

1/https://github.com/ifandelse/machina.js 非常好的文档,示例,支持两个开箱即用的JavaScript消息总线提供程序:postal.js和amplify.js.

2/https://github.com/jakesgordon/javascript-state-machine 更简单,更易于使用,完美的"基本"的用法.


Dav*_*art 6

我最近在JS中构建了一个状态机实现,由于它的转换DSL,它当然是最容易配置的:

transitions: [
  'next    : intro > form > finish',
  'back    : intro < form           < error',
  'error   :         form >           error',
  'restart : intro        < finish'
]
Run Code Online (Sandbox Code Playgroud)

它在配置和事件处理程序分配方面都非常灵活,您可以在运行时添加和删除状态,暂停和恢复转换,挂钩大量事件,使用jQuery的帮助程序和Vue等反应框架:

状态机演示

文档和一大堆演示在这里: