返回
Salesforce LWC 文档 —— 事件
前端
2023-09-16 12:59:48
事件概述
事件是组件之间通信的一种方式。当组件发生某种变化时,它可以调度一个事件,然后其他组件可以监听该事件并做出相应的反应。这是一种非常灵活且强大的通信方式,可以用于各种各样的场景。
调度事件
要调度事件,您可以在组件中使用 dispatchEvent
方法。此方法接受一个事件对象作为参数,该对象包含有关事件的详细信息。事件对象可以是标准 DOM 事件对象,也可以是自定义事件对象。
以下是如何调度标准 DOM 事件的示例:
this.dispatchEvent(new CustomEvent('click'));
以下是如何调度自定义事件的示例:
this.dispatchEvent(new CustomEvent('my-custom-event', {
detail: {
data: 'This is some data'
}
}));
监听事件
要监听事件,您可以在组件中使用 addEventListener
方法。此方法接受三个参数:事件类型、事件处理程序和可选的捕获标志。
以下是如何监听标准 DOM 事件的示例:
this.addEventListener('click', function(event) {
// Do something
});
以下是如何监听自定义事件的示例:
this.addEventListener('my-custom-event', function(event) {
// Do something with event.detail.data
});
事件冒泡
当组件调度事件时,该事件会从该组件冒泡到其父组件,依此类推,直到到达根组件。这允许您在父组件中监听子组件发出的事件。
以下是如何在父组件中监听子组件发出的事件的示例:
this.addEventListener('my-custom-event', function(event) {
// Do something with event.detail.data
});
事件监听器和事件处理程序
事件监听器是您在组件中定义的函数,用于监听特定类型的事件。事件处理程序是您在事件监听器中定义的函数,用于处理该事件。
以下是如何定义事件监听器和事件处理程序的示例:
this.addEventListener('click', function(event) {
// Do something
});
在上面的示例中,this.addEventListener('click', ...)
是事件监听器,而 function(event) { ... }
是事件处理程序。
最佳实践
以下是使用 LWC 中事件的一些最佳实践:
- 仅调度您需要调度