javascript - 使用 "this"或 "window"调度自定义事件?

标签 javascript web-component lit-element custom-events

当我创建一个调度自定义事件的 Web 组件(特别是使用 lit/lit-element)时,我可以:

窗口调度事件:

const evt = new CustomEvent("my-custom-event", {detail: "some-data"});
window.dispatchEvent(evt);

或者从 Web 组件本身调度事件 (this):

const evt = new CustomEvent("my-custom-event", {detail: "some-data"});
this.dispatchEvent(evt);

是否有理由让我想要做其中一个而不是另一个?

最佳答案

可以使用窗口作为事件调度程序来调度自定义事件,并添加处理它们的处理程序。

window.addEventListener("xyz", event => console.log(event.detail));

event = new CustomEvent("xyz", {
  detail: {
    action: "didInitialize",
    payload: 3
  }
});

window.dispatchEvent(event);

输出:

{action: 'didInitialize', payload: 3}

事件具有timeStamp和所有常见的事件属性。

关于javascript - 使用 "this"或 "window"调度自定义事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72605440/

相关文章:

javascript - 在不同电子表格之间传输数据 google SpreadSheets

javascript - 如何强制 HTML 页面具有水平滚动条

javascript - 在 webview WinRt 中获取导航 url

javascript - Angular指令充当其他元素的外观的好方法是什么?

javascript - 为什么模板版本 1+ 从 HTML 按钮中删除类型属性?

javascript - 如何使用 "is"扩展原生 DOM 元素?

typescript - 使用 rollup、postcss 和 tailwind 框架打包由 lit-element 制作的 Web 组件

javascript - LitElement 不更新列表中的复选框

javascript - 将 unsafeHTML 与 lit-element 一起使用时出错

javascript - 现代版本 EXT JS 6.2.0 中的 loadRecord() 方法