V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sharkrice
V2EX  ›  程序员

提一个我最近在纠结的无聊问题,事件处理方法是用 onXXX 还是 handleXXX?

  •  
  •   sharkrice · 2018-09-18 14:36:47 +08:00 · 3079 次点击
    这是一个创建于 2018 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在搞前端项目,前端里有很多事件处理,有的框架或库用的是 onXXXX,有的是用 handleXXXX 有的既有 onXXX 也有 handleXXXX 本来是无所谓的事,但是我非要搞清楚 到底是用 onXXX 来命名还是 handleXXX 来命名, 它们有使用场景这一说,还是看心情瞎命名?

    10 条回复    2018-09-18 17:50:20 +08:00
    wu67
        1
    wu67  
       2018-09-18 14:52:09 +08:00
    onClick stateHandler, 反正我是这么用的...
    pkoukk
        2
    pkoukk  
       2018-09-18 14:56:28 +08:00
    从个人理解的角度来说,on 偏向于 click 这些直接被触发的,handle 偏向于间接的。
    至于那些框架怎么想的,我就不知道了
    Aruforce
        3
    Aruforce  
       2018-09-18 14:57:13 +08:00
    elmnt.onXXXX...
    oswuhan
        4
    oswuhan  
       2018-09-18 15:10:49 +08:00   ❤️ 1
    三行代码感受下 onClick 与 handler 写法的场景差异,不是说必须这么写,把 handlerA/B 改成 onClickA/B 也是可以的,只不过语义不顺畅,个人认为,onClick 操作只执行一次(一个回调操作),而 event 与 handler 是一对多的关系。

    el.onClick = function(){}
    el.addEventListener('click', handlerA);
    el.addEventListener('click', handlerB);
    reus
        5
    reus  
       2018-09-18 16:19:53 +08:00
    都可以,鸡毛蒜皮。
    xianxiaobo
        6
    xianxiaobo  
       2018-09-18 16:25:28 +08:00
    以前习惯用 on,后来 vue 某个组件库用 handle 我就跟着用 handle 了,保持一致性
    yikyo
        7
    yikyo  
       2018-09-18 17:13:32 +08:00
    那我这个 onXXXClickEventHandle 算是奇葩吗。。。
    whypool
        8
    whypool  
       2018-09-18 17:20:24 +08:00
    看心情
    d18
        9
    d18  
       2018-09-18 17:37:34 +08:00
    on 可以少些几个字母。
    chairuosen
        10
    chairuosen  
       2018-09-18 17:50:20 +08:00
    这个问题实质上是 on a do b。当只干一件事的时候,都行,当干多个事情时候,就应该是 onA(){ doB(); doC(); doD(); }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1385 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:43 · PVG 07:43 · LAX 16:43 · JFK 19:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.