<component> will render).
Consider a generic button element, which might be part of a pattern library:
So what? All we've done is abstract over an HTML button element. This component knows nothing about what will happen when it's clicked - it simply delegates that responsibility up to its parent.
And therein lies the power. Suppose at certain times the button will not do anything. We could expand it to communicate that:
At this point, the parent can decide what the button does, and even if it does anything at all. If it doesn't have a click handler, the button will appear disabled, clearly communicating its function through its form. Rather than tracking separate props for the click handler and
disabled you can remove the click handler when the button is disabled. This is very hard to get right with an event-based system.