我们刚刚讨论了使用现有或过去的表单来表示事件名称。事实是,事件通常会在事情发生后触发:
store.save(object)
store.trigger("create", object)
我想知道是否有任何事件命名约定?使用过去的形式会更有意义,另一方面我觉得使用现有形式的用途更广泛。
这个主题有什么好的资源吗?您是否了解使用过去表单的已知JavaScript库?
答案 0 :(得分:11)
我会以现在时态去。
大多数(如果不是全部)JavaScript框架似乎遵循JavaScript DOM事件API规定的约定;即为事件名称使用现在时。当我想到它时,这对我来说似乎是最自然的,尽管事件是在它们被触发后处理的。毕竟,该活动是在 事件名称上触发的。无论执行何种操作都会触发事件,它都会发生在事件循环的当前迭代中。换句话说:就事件循环而言,事件和触发事件的动作同时发生。
某些框架(例如YUI3)为自定义事件提供after
挂钩和on
挂钩。这种区别在YUI的属性库(amonst others)中使用:
使用
on
方法注册的听众会在之前通知已更新属性的存储状态。 [...]由于在发生任何状态更改之前调用了这些侦听器,因此它们能够阻止状态发生更改[...]
使用
after
方法注册的听众会在 属性的存储状态更新后通知。
来源:http://yuilibrary.com/yui/docs/attribute/index.html#on-vs-after
我个人并不知道任何使用过去时的事件名称的框架,但我不熟悉所有这些框架。
答案 1 :(得分:3)
Bootstrap为每个操作定义了两个事件。一个在开始动作时被触发并使用现在时(例如show
)命名。另一个是在动作完成后触发的 - 这个动作以过去的分词形式(shown
)命名。
所有内容都在http://getbootstrap.com/javascript/#js-events
下解释我想这种方法在动画发挥作用时有意义。