Ember Octane (3.22+) 为什么使用 {{on 'click' this.function}} 而不是 onclick={{this.function}}

Abe*_*Abe 3 html javascript ember.js ember-octane

因此,在 Ember Octane 中,有两种方法可以将函数附加到hbs文件中的事件。

EmberJS 方式: {{on 'click' this.function}}

经典的 HTML 方式: onclick={{this.function}}

在这里他们建议使用先前的语法

但是,除非我们有正当理由,否则我看不出使用该语法的理由。

我会使用前者而不是后者的原因是什么?

Gau*_*rav 7

{{on 'click' this.function}}
Run Code Online (Sandbox Code Playgroud)

使用addEventListener来自 W3C DOM 1.0 规范的语义,并removeEventListener在模板被销毁时自动清理自身。

onClick={{this.function}}
Run Code Online (Sandbox Code Playgroud)

使用来自 HTML4 的旧 DOM 事件语义,它

  1. 不允许多个听众
  2. 不会传播到外部元素
  3. 吞下来自嵌套元素的任何事件