ANALYSIS: <template> is cheaper. When creating a single instance using a template is most always cheaper. When creating many instances of a component, it is always cheaper.
That's because paying the parsing cost once. Creating shadow DOM by .innerHTML'ing a string means the string needs to be re-parsed for every instance of the component that's created.
BACKGROUND: Many people want to neglict HTML Imports for
defining web components, and instead, use pure JS. An advantage of <template> is that you can declare your component's markup ahead of time, have the browser parse it
into DOM, and reuse it over and over again.
( source on github )