...
There is always a decision about providing flexibility by creating single generic components that can be connected together versus larger components that inherits all functionality and may be configured by properties. The user of this component needs to be taken in into consideration. A user always wants it easy by using as few components as possible to fulfil his tasks. Therefore, put as much functionality into a component as possible.
...