В веб-компонентах, как и в React, мы отправляем данные вниз, а события - вверх.
В React обычно отправляют событие в дочерний компонент в качестве атрибута. Например:
<CustomComponent handleClick={this.handleClick}></CustomComponent>
Я узнал, что это также можно сделать с помощью веб-компонентов LitElement:
<custom-component .handleClick=${this.handleClick}></custom-component>
Тем не менее, многие источники, которые я читал, говорят об использовании настраиваемого события внутри компонента без упоминания обратных вызовов атрибутов:
this.dispatchEvent(
new CustomEvent('some-custom-event', {
bubbles: true,
composed: true,
detail: {
data: someData,
},
})
);
У меня вопрос: почему предпочтительнее отправлять настраиваемое событие, а не отправлять обратный вызов веб-компоненту в качестве атрибута? Это условность или есть веская причина, которую я просто не могу найти?