Зачем нужен элемент template?
Когда мы создаем какие-то элементы внутри нашего шаблона, иногда может возникнуть ситуация, что нам нужно создать некий технический элемент, который физически не будет выводить в DOM разметке документа, но условная логика и операторы цикла мы для этого элемента можем использовать.
Во vue есть такой элемент и он называется template.
Если просто добавить этот элемент в разметку без прикрепления к нему каких-либо директив, он отобразиться в разметке как неизвестный элемент.
<template></template>
Но, давайте посмотрим, что произойдет, если для этого элемента мы добавим условный оператор.
<template v-if="loading">Загрузка</template>
Если теперь посмотреть DOM разметку, элемента template просто физически не будет в DOM разметке, даже при условии, что loading = true.
Т.е. template - это псевдо - элемент (элемент призрак), который не создает никаких элементов в разметке, если к нему применяются какие-либо vue директивы.
Где может понадобиться элемент template?
Например, может быть следующая ситуация:
<div>
<template v-if="type==='post'">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>
</div>
Элемент div в разметке уже есть и вам не нужно создавать еще какой-либо элемент разметки вместе с условным оператором. Как мы обсуждали здесь:
https://webkyrs.info/page/vue-direktiva-v-if-uslovnii-rendering
Условный оператор обязательно должен прикрепляться к какому-либо элементу.
Применение template с циклами
Часто этот элемент может использоваться с циклами.
<ul>
<template v-for="item in items">
<li>{{ item.msg }}</li>
<li class="divider" role="presentation"></li>
</template>
</ul>
У нас есть массив каких-то элементов items. Мы могли бы взять и применить директиву v-for для элемента li. Но, логика отображения элементов li достаточно сложная. Поэтому мы прописываем директиву не для элемента li, а для его родительского псевдоэлемента template.
Элемент template - это элемент шаблона, который используется для каких-то технических задач, для циклов, для условий, для того, чтобы навесить на него какую-то логику и этот элемент не создает нам каких-либо элементов для DOM-разметки.
Вот такой интересный элемент и понимание работы с ним может значительно упростить вашу работу с фреймворком Vue.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти