Why Vue.js uses single-word <component>, which violates their own style guide?


So, Vue.js has its own style guide, which clearly states (in “essential” section) that components names should be multi-word to prevent “conflicts with existing and future HTML elements, since all HTML elements are a single word”.

Yet they use <component> tag for dynamic components. I couldn’t find <component> in the list of existing HTML tags. Does this mean that if one day HTML adopts <component> tag, Vue.js will try to parse them and break?

Please clarify.


Why would that really break anything? W3C and all browsers will not just implement something in one day. They do study modern frameworks to not create unnecessary conflicts. Even if they do something that stupid VueJS team will have plenty of time to mitigate the problem.

What the style guide says is you should name your custom components with multi words. component tag is reserved VueJS component for dynamically showing components.