Most modern frontend JavaScript frameworks provide some sort of support for component-based development. This is an incredibly important step in the direction of development for the web. Components provide a way to write small parts with a consistent API that can easily be orchestrated as part of a larger screen, application, or system. Imagine each component as a Lego piece—you can use it wherever you want and it will keep the same shape and behavior.
A component can be an HTML part, a JavaScript piece of code, a service, and so on. Any reusable part should be interpreted as a component.