JavaScript事件命名约定

JavaScript event naming conventions

本文关键字:命名约定 事件 JavaScript      更新时间:2023-09-26

我们刚刚讨论了事件名称是使用现在形式还是过去形式。事实是,事件通常在发生后触发:

store.save(object)
store.trigger("create", object)

我想知道是否有活动命名的惯例?使用过去的形式更有意义,另一方面,我觉得使用现在的形式更广泛。

关于这个问题有什么好的资源吗?您知道哪些已知的JavaScript库使用过去的表单来处理其事件吗?

我会用现在时态。

大多数(如果不是全部的话)JavaScript框架似乎都遵循JavaScriptDOM事件API提出的约定;即对事件名称使用现在时态。当我想到这一点时,这对我来说似乎是最自然的,尽管事实上事件是在触发后处理的。毕竟,事件是在事件名称上触发的。无论执行了什么导致触发事件的操作,都会发生在事件循环的当前迭代中。换句话说:就事件循环而言,事件和触发事件的动作同时发生。

一些框架,如YUI3,为自定义事件提供了after钩子和on钩子。这种区别在YUI的属性库(amonst others)中使用:

在更新属性的存储状态之前,将通知使用on方法注册的侦听器。[…]

由于这些侦听器是在任何状态更改发生之前调用的,因此它们能够防止状态更改发生[…]

使用after方法注册的侦听器将在属性的存储状态更新后得到通知。

来源:http://yuilibrary.com/yui/docs/attribute/index.html#on-后的对比

我个人不知道有任何框架使用过去时作为事件名称,但我并不熟悉所有这些框架。

Bootstrap为每个操作定义两个事件。一个是在开始动作时触发的,并使用现在时态命名(例如show)。另一个是在动作完成后触发的——这个是用过去分词形式(shown)命名的。

所有内容都在http://getbootstrap.com/javascript/#js-事件

编辑

我想当动画开始发挥作用时,这种方法是有意义的。