我试图理解<template>
及其功能的用例。在引用the docs之后,我仍然相当困惑。
考虑 any.vue 文件中的以下代码:
<template>
<div class="top-right links">
<!-- Why use <template> here instead of a div, for example? -->
<template v-if="authenticated">
<router-link :to="{ name: 'home' }">
{{ $t('home') }}
</router-link>
</template>
<template v-else>
<router-link :to="{ name: 'login' }">
{{ $t('login') }}
</router-link>
</template>
</div>
</template>
为什么我们会使用<template>
而不是简单的<div>
,使用<template>
与使用<custom-component>
的情况有何不同?{/ 1>
答案 0 :(得分:2)
根据我的理解,使用<template>
不会在DOM中渲染出额外的元素。当您有条件地添加多个不完全需要父<div>
的元素时,它会特别有用。如果<div>
除了条件多个标签之外没有任何用途,那么可以在没有额外<div>
的情况下完成。
我通常默认使用<template>
,直到我需要<div>
或其他元素作为父容器,主要是为了应用样式。
答案 1 :(得分:1)
你是对的,在你的情况下你应该简单地使用它:
<template>
<div class="top-right links">
<router-link v-if="authenticated" :to="{ name: 'home' }">
{{ $t('home') }}
</router-link>
<router-link v-else :to="{ name: 'login' }">
{{ $t('login') }}
</router-link>
</div>
</template>
但是,假设您需要条件多个标记而不使用父标记:
<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
</template>
了解更多:
答案 2 :(得分:0)
模板标记内的内容将呈现在DeriveFunctor
文件的视图中。
答案 3 :(得分:0)