Although it may not be exactly the type of answer you are looking for, I would say that component design tends to succumb to elegant code through elegant architecture. Thinking about how to separate the code will apply structure and order to the chaotic process (sometimes). The elegance of the code can be upset before implementation (you better be careful), or looked after the initial integration through refactoring and simplification. If you go with a component-based model, then reorganizing the integral parts of your application becomes a much more manageable task - until the input and output are changed without changes in the process of improvement / simplification. Focusing on the overall structure of the application has become for me elegant code. It is difficult to achieve the latter without the first if your application does not have a small amount.
The bottom line is that code is a malleable and ever-changing process. Elegance exists only at different points in time, because something can begin to grace and after several iterations become a claude. After that, it is again converted into elegance, etc., Therefore, supporting this idea with the help of sound architecture will simplify your code as elegant as possible, without breaking unrelated elements.
source share