Backbone.js事件处理程序命名的最佳实践

假设我在一个视图中有一个函数,该函数在某种状态发生更改时触发。 给它命名最合适,为什么?

  • 状态更改
  • 状态已更改
  • onStateChange
  • onStateChanged

解决方案

我个人更喜欢使用onEventName名称,保持DOM事件处理程序的本机命名约定。

LIKEmyElement.onclick = function() { /* ... */ }FORclick事件。

因此对于myEvent,我使用名为onMyEvent的处理程序。

如果我有事件stateChange,则我将使用onStateChange处理程序。

但实际上,这个问题对于每个开发团队以及团队/公司内部的代码风格约定更为具体。

因此,这类问题的主要目标是在所有部分保持代码样式相同,以确保可读性。

因此,如果您在团队中工作,只需遵守团队的代码编写约定,如果您单独处理现有代码,则尽量保持其代码样式(当然,如果该样式不是明显难看的话)。

更新:了解。

事件是什么?大致是在程序外部或内部发起的操作,换句话说,系统中发生了一些事情,例如一些状态变化(键盘、鼠标、I/O设备的状态等)。无论如何(用户单击鼠标或某个程序将鼠标单击信号发送到系统)。

假设浏览器窗口被订阅以获得有关某些事件的通知,并且操作系统尽快将它们发送给它,我们将假设在发生事情的同时。因此,如果用户在浏览器窗口处于活动状态且文档具有焦点时单击鼠标,浏览器会提示文档触发click事件。这里,我们的onclick处理程序开始它的调用。换句话说,系统告诉我们现在发生了某种状态的更改。我们正在处理此更改,而不是在处理通知我们状态已更改的事实。

假设我们的处理程序名为onClicked.,因为处理程序的名称以过去式出现,我们可以得到一个合理的问题:"当被点击时,它发生了多久?它被点击了多少次?嗯,也许处理这个动作(或动作?)已经太晚了……"所以这个名字告诉我们在过去的某个时间发生了一些事情。

相反,当我们的处理程序命名为onClick时,显然是click事件只触发了一次,并且我们立即收到了通知。我们将处理单击事件-告知我们鼠标状态正在发生变化的信息(不是鼠标已单击,而是单击事件)。

因此,过去时的名称更适合于我们需要检查某个状态是否已更改的情况。例如,如果变量存储state = 1,我们可以调用isStateChanged();函数,将state变量中的值与当前时刻的实际值进行比较。在这里,过去式是很好的命名选择。

相关文章