В веб-компонентах, подобных 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,
},
})
);
Мой вопрос: почему предпочтительнее отправлять пользовательское событие, чемчем отправить обратный вызов веб-компоненту в качестве атрибута? Это соглашение или есть серьезная причина, которую я просто не могу найти?