Когда вы открываете страницу в браузере, HTML-код превращается в DOM-дерево — структуру в памяти, с которой работает JavaScript и которую рисует браузер.
Но не вся разметка сразу становится частью этого дерева. Иногда нам нужно заготовить фрагменты разметки, но не рендерить их прямо сейчас. Для этого и существует <template>. Тег <template> — это контейнер для «холодного» HTML.
Всё, что внутри него: Этот фрагмент можно клонировать и вставлять в DOM по мере необходимости — например, при клике, при получении данных от сервера, или при создании списка элементов. 💡 Другие способы отложенного рендеринга (например, display: none) не решают ту же задачу: они всё равно создают DOM-узлы (занимают память), запускают скрипты и грузят ресурсы. <template> — единственный настоящий способ «подержать HTML в холодильнике». Представьте: вы хотите сделать 10 кубиков льда.
Вы не льёте воду прямо на стол — вы берёте форму, заливаете её, ставите в морозилку, а потом по мере надобности выталкиваете готовые к