Una cosa que han ido apareciendo con HTML y JS es el uso de los templates que ayudan a trabajar con un concepto de componentes
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template