JavaScript事件命名约定
JavaScript event naming conventions
我们刚刚讨论了事件名称是使用现在形式还是过去形式。事实是,事件通常在发生后触发:
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-事件
编辑
我想当动画开始发挥作用时,这种方法是有意义的。
- JavaScript命名约定;静态“;类或模块
- 命名约定的Web标准
- 如何在没有jQuery的情况下模拟按名称命名的事件或解除单个事件的绑定
- Javascript中的变量命名约定;jQuery
- 角度模块依赖项的命名约定
- Javascript ES6 的属性和支持值命名约定
- 自定义咕噜声任务命名约定
- Laravel和变量命名约定(蛇格+骆驼格)
- JavaScript事件命名约定
- backbone.js的命名约定(在rails上)
- .NET 商店中的 JavaScript 命名约定
- 如何使用此命名约定验证表单客户端
- JavaScript 打开与命名空间事件
- Requirejs、jshint 和命名约定
- Javascript 模拟命名约定
- 使用 nodejs 时的 JavaScript 命名约定
- 不是一个正确的命名约定,但它工作正常,如果它有效,命名约定如何以及需要什么
- 在html/css/javascript的命名约定中不使用连字符时
- NPM脚本命名约定
- internet explorer - Javascript -事件属性的浏览器命名约定让我很困惑