Vue <template> 元素
示例
使用内置 <template>
元素通过 v-if
指令切换 HTML 代码部分。
<ul>
<li>Trolltunga</li>
<template v-if="display">
<li>Potato Point</li>
<li>The souks of Marrakech</li>
<li>Dry Tortugas</li>
<li>Halong Bay</li>
</template>
<li>...</li>
</ul>
运行示例 »
定义和用法
当与 Vue 指令 v-if
, v-else-if
, v-else
, v-for
, 或 v-slot
一起使用时,HTML <template>
标签将成为内置的 Vue <template>
元素。
与 v-if
, v-else-if
, v-else
, 或 v-for
一起使用时,内置的 <template>
元素会呈现一段 HTML 代码。
当与 v-slot
一起使用时,内置 <template>
元素将一段 HTML 代码定向到指定的槽。 请参见下面的示例 1。
内置的 <template>
元素本身不会呈现为 DOM 元素。
注意:顶级 <template>
元素是使用 SFC (*.vue) 文件时的结构要求。 对于此类顶级 <template>
元素,无法使用 Vue 指令。
更多示例
示例 1
使用内置的 <template>
元素封装多个元素,并使用 v-slot
指令将它们发送到特定的命名槽。
<template>
<h1>App.vue</h1>
<p>该组件有两个 div 标签,每个标签中有一个插槽。</p>
<slot-comp>
<template v-slot:bottomSlot>
<h4>到底部插槽!</h4>
<p>这个 p 标签和上面的 h4 标签通过模板标签上使用的 v-slot 指令定向到底部插槽。</p>
</template>
<p>这会进入默认插槽</p>
</slot-comp>
</template>
运行示例 »
示例 2
使用 <template>
元素,可以通过 v-if
指令呈现多个元素。
<div id="app">
<template v-if="text.includes('pizza')">
<p>The text includes the word 'pizza'</p>
<img src="img_pizza.svg">
</template>
<p v-else>The word 'pizza' is not found in the text</p>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
data() {
return {
text: 'I like taco, pizza, Thai beef salad, pho soup and tagine.'
}
}
})
app.mount('#app')
</script>
亲自试一试 »
相关页面
Vue 教程:Vue v-slot
Vue 教程:Vue 模板
Vue 教程:Vue v-if 指令
Vue 参考:Vue v-if 指令
Vue 参考:Vue v-slot 指令
HTML参考:HTML <template> 标签