【问题标题】:Do I have to extend CustomEvent for custom DOM events?我必须为自定义 DOM 事件扩展 CustomEvent 吗?
【发布时间】:2013-09-02 12:11:00
【问题描述】:

在阅读this question 时,我想知道如果您想在应用程序中拥有自定义 DOM 事件,是否真的需要扩展 CustomEvent。是否可以仅扩展 Event 或 CustomEvent 出于技术原因是否有特殊用途?

我想到的一个例子:一个登录组件,它有两个属性“用户名”和“密码”。我可以想象一个具有这两个属性的 LoginEvent。我可以:

  • 将这两个属性作为事件类的属性,在这种情况下,我不需要/使用 CustomEvent 的详细信息,因此可能不需要扩展 CustomEvent。
  • 将它们作为数组传递给 CustomEvent 的 detail 属性。
  • 使用这两个属性创建一个 LoginParams 对象,并将其传递给 CustomEvent 的 detail 属性。

【问题讨论】:

  • 你需要 DOM 事件,还是一般的事件?
  • 我在想 DOM 事件是的。这与非 DOM 事件有什么不同吗?
  • 我不清楚您是否需要 DOM 事件。非 DOM 事件不需要从 Event/CustomEvent 派生,它们只是流。
  • 谢谢,我会澄清这个问题。

标签: dart


【解决方案1】:

CustomEvent.detail 正是为此而生,尽管类型必须可传递给 JS,因此存在一些限制。

如果您可以扩展 CustomEvent 那就太好了,但这与扩展 Element 有类似的问题。

【讨论】:

  • 我知道 CustomEvent 可以用于这种情况。我想知道是否真的需要使用它。如果我不想使用 CustomEvent 的通用详细信息属性怎么办。我可以通过扩展 Event 来创建自己的自定义事件吗?
  • 如果你想利用 DOM 处理事件的方式,比如冒泡,那么你需要使用 dart.html.Event 的一些子类。否则,您可以创建任何类型的 Stream。
  • 另外,我认为事件是 JS 互操作的潜在点,使用 DOM 有助于确保兼容性。
猜你喜欢
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
相关资源
最近更新 更多