Currently, it's very popular to extend components when sharing functionality amongst them. This goes against the nature of components and tends to produce large, monolithic code bases that are difficult to maintain. On the other hand, composition reduces the complexity of components by using them as building blocks that can be mixed and matched together to form more specialized units, whilst retaining the simplicity of each individual component.
In this talk we'll learn what is composition, why inheritance and mixings are not suitable for components, and how can composition help you achieve simplicity, diversity, and organization. The examples will be in VueJS, but every framework is welcomed.