Ember Octane (3.22+) 为什么使用 {{on 'click' this.function}} 而不是 onclick={{this.function}}
Ember Octane (3.22+) why use {{on 'click' this.function}} instead of onclick={{this.function}}
所以在 Ember Octane 中有两种方法可以将函数附加到 hbs
文件中的事件。
EmberJS 方式:{{on 'click' this.function}}
经典HTML方式:onclick={{this.function}}
Here they suggest using the prior syntax
但是,除非我们有正当理由,否则我看不出为什么要使用该语法。
我使用前者而不是后者的原因是什么?
{{on 'click' this.function}}
使用来自 W3C DOM 1.0 规范的 addEventListener
语义,并在模板被销毁时使用 removeEventListener
自动清理自身。
onClick={{this.function}}
使用 HTML4 中较旧的 DOM 事件语义,
- 不允许多个监听器
- 不传播到外部元素
- 吞噬来自嵌套元素的任何事件
所以在 Ember Octane 中有两种方法可以将函数附加到 hbs
文件中的事件。
EmberJS 方式:{{on 'click' this.function}}
经典HTML方式:onclick={{this.function}}
Here they suggest using the prior syntax
但是,除非我们有正当理由,否则我看不出为什么要使用该语法。
我使用前者而不是后者的原因是什么?
{{on 'click' this.function}}
使用来自 W3C DOM 1.0 规范的 addEventListener
语义,并在模板被销毁时使用 removeEventListener
自动清理自身。
onClick={{this.function}}
使用 HTML4 中较旧的 DOM 事件语义,
- 不允许多个监听器
- 不传播到外部元素
- 吞噬来自嵌套元素的任何事件