美文网首页
界面上的有限状态机(四)

界面上的有限状态机(四)

作者: 寻找无名的特质 | 来源:发表于2020-12-25 06:10 被阅读0次

前面介绍了有限状态机的状态和转换,具体界面响应是在状态转换时进行的,比如如果用户按了按钮,某些控件会不可见,这些动作需要在状态转换时的事件响应中完成,在状态转换时,会有有五种事件发生,按顺序如下:

  • onBeforeTransition - 转换发生前事件

  • onLeaveState - 离开上一个状态的事件

  • onTransition - 转换进行种的事件

  • onEnterState - 进入下一个状态的事件

  • onAfterTransition - 转换完成后的事件
    这些事件针对所有的状态和转换,如果针对特定的事件和转换,可以将上面的函数种的Transition和State换为具体的名称:

  • onBefore<TRANSITION> - 特定转换发生前的事件

  • onLeave<STATE> - 离开特定状态的事件

  • onEnter<STATE> - 进入特定状态的事件

  • onAfter<TRANSITION> - 特定转换完成的事件

还有两种简化的写法:

  • onAfter<TRANSITION>可以简化为on<TRANSITION>
  • onEnter<STATE> 可以简化为on<STATE>

这些名称需要使用javascript的驼峰命名方式,不管状态和转移如何定义,下面是例子:

  var fsm = new StateMachine({
    transitions: [
      { name: 'do-with-dash',       from: 'has-dash',        to: 'has_underscore'   },
      { name: 'do_with_underscore', from: 'has_underscore',  to: 'alreadyCamelized' },
      { name: 'doAlreadyCamelized', from: 'alreadyCamelize', to: 'has-dash'         }
    ],
    methods: {
      onBeforeDoWithDash:         function() { /* ... */ },
      onBeforeDoWithUnderscore:   function() { /* ... */ },
      onBeforeDoAlreadyCamelized: function() { /* ... */ },
      onLeaveHasDash:             function() { /* ... */ },
      onLeaveHasUnderscore:       function() { /* ... */ },
      onLeaveAlreadyCamelized:    function() { /* ... */ },
      onEnterHasDash:             function() { /* ... */ },
      onEnterHasUnderscore:       function() { /* ... */ },
      onEnterAlreadyCamelized:    function() { /* ... */ },
      onAfterDoWithDash:          function() { /* ... */ },
      onAfterDoWithUnderscore:    function() { /* ... */ },
      onAfterDoAlreadyCamelized:  function() { /* ... */ }
    }
  });

相关文章

  • 界面上的有限状态机(四)

    前面介绍了有限状态机的状态和转换,具体界面响应是在状态转换时进行的,比如如果用户按了按钮,某些控件会不可见,这些动...

  • 界面上的有限状态机(三)

    前面介绍了状态和转移的基本用法,还有一些针对复杂场景的高级功能,这里介绍一下。 状态通配符“*” 前面我们提到了,...

  • 界面上的有限状态机(六)

    界面状态机本身不记录历史状态,如果需要查看状态的转换历史,或者需要回滚等功能,可以使用插件。如果在浏览器中使用,可...

  • 界面上的有限状态机(二)

    前面介绍了Js开发的有限状态机,这里介绍一下这个有限状态机涉及的基本概念——状态(State)和转移(Transi...

  • 界面上的有限状态机(五)

    前面介绍了有限状态机状态转换时激发的事件,这些事件可以在状态机methods种定义捕获函数,这些函数会传入一个li...

  • 界面上的有限状态机(一)

    如果Web界面中涉及若干状态以及状态之间的转换,采用有限状态机管理界面可以使代码结果更清晰、更容易管理,也更容易描...

  • 界面上的有限状态机(八)

    前面我们创建一个有限状态机都是直接使用构造函数,比如: 如果我们希望创建多个定义相同的有限状态机实例,我们可以使用...

  • 界面上的有限状态机(七)

    前面介绍了界面有限状态机https://github.com/jakesgordon/javascript-sta...

  • 有限状态机

    【修真院web小课堂】有限状态机是什么? 如何使用有限状态机实现任务四 大家好,我是IT修真院成都分院第11期的学...

  • 有限状态机与JavaScript

    有限状态机与JavaScript 有限状态机是一种很有用的编程模型,简单来说,我理解的有限状态机一个显著的作用是降...

网友评论

      本文标题:界面上的有限状态机(四)

      本文链接:https://www.haomeiwen.com/subject/kozlnktx.html