reactの普及で使用頻度が減ったような気がするShadow DOMだが、tempalte要素をいままで使ったことがなかったので、初めて使ってみた。
template要素はレンダリングされないため、ブラウザに表示するにはjsを使用する必要がある。
<template id="template">
<p>hoge</p>
</template>
<div id="root"></div>
<script>
const $tpl = document.querySelector('#template');
const $clone = $tpl.content.cloneNode(true);
// データを加工する場合
$clone.querySelector('p').textContent = 'foo';
document.querySelector('#root').appendChild($clone);
</script>