v-if v-else
假设我们将 Vue.js
实例定义为:
var vm = new Vue({
el: '#example',
data: {
a: true,
b: false
}
});
你可以通过包含 v-if 指令有条件地呈现任何 html 元素; 包含 v-if 的元素仅在条件计算结果为 true 时才会呈现:
<!-- will render 'The condition is true' into the DOM -->
<div id="example">
<h1 v-if="a">The condition is true</h1>
</div>
在这种情况下,<h1>
元素将呈现,因为变量 a
为真。v-if 可以与任何表达式,计算属性或计算为布尔值的函数一起使用:
<div v-if="0 === 1"> false; won't render</div>
<div v-if="typeof(5) === 'number'"> true; will render</div>
你可以使用 template
元素将多个元素组合在一起以获得单个条件:
<!-- in this case, nothing will be rendered except for the containing 'div' -->
<div id="example">
<template v-if="b">
<h1>Heading</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>
</div>
使用 v-if
时,你还可以选择将计数器条件与 v-else
指令集成。仅当前一个 v-if 的条件为 false 时,才会显示元素内包含的内容。请注意,这意味着具有 v-else 的元素必须紧跟在具有 v-if 的元素之后。
<!-- will render only 'ELSE' -->
<div id="example">
<h1 v-if="b">IF</h1>
<h1 v-else="a">ELSE</h1>
</div>
就像 v-if 一样,使用 v-else,你可以在 <template>
中将多个 html 元素组合在一起:
<div v-if="'a' === 'b'"> This will never be rendered. </div>
<template v-else>
<ul>
<li> You can also use templates with v-else. </li>
<li> All of the content within the template </li>
<li> will be rendered. </li>
</ul>
</template>