vue.js实现条件渲染的实例代码实现条件渲染的实例代码
一、初探条件渲染一、初探条件渲染
vue 的条件渲染,仍旧依赖于指令系统,下面逐个介绍:
((1))v-if
<div id="app">
<div v-if="c1">c1</div>
</div>
......
var app = new Vue({
el: '#app',
data: {
c1: false
}
});
当 c1 为真值的时候,渲染出 v-if 所绑定的元素,否则不渲染出该元素。渲染结果如下:
<div id="app"></div>
((2))v-else
<div id="app">
<div v-if="c1">c1</div>
<div v-else>c1 is not true</div>
</div>
......
var app = new Vue({
el: '#app',
data: {
c1: false
}
});
当 c1 为真值的时候,渲染 v-if 所绑定的元素,否则渲染 v-else 所绑定的元素。这里值得注意的是,在 Handlebars 模板引擎
里面,else 可以和 each 所搭配,当遍历次数为0的时候,则渲染 else 块所对应的内容;而对于 vue,官方给出的说法是,每
个 v-else 所绑定语句必须绑定在 v-if 或者 v-else-if 语句的后面。一开始我还抱有一丝希望地去试了一下,结果。。。
遍历次数为0的时候,v-else 绑定的元素没有渲染出来,而且控制台还报错了。
个人感觉,在这一方面,vue 的模板引擎可能有所欠缺。虽然说,我们可以利用在循环中添加条件判断实现相同的功能,但却
需要添加额外的代码。
((3))v-else-if
<div id="app">
<div v-if="c1">c1</div>
<div v-else-if="c2">c2</div>
</div>
......
var app = new Vue({
el: '#app',
data: {
c1: false,
c2: true
}
});
这里先检查 c1 是否为真值,是则渲染出 v-if 绑定的元素,否则检查 c2 是否为真值,是则渲染出 v-else-if 所绑定的元素。如果
c1 / c2 都不为真值,则都不渲染。渲染结果如下:
<div id="app">
<div>c2</div>
</div>
不难理解,v-if、 v-else、 v-else-if 跟类 C 语言中的 if、else、else if 功能相仿。