vuejs—条件渲染

上一篇 介绍了通过vue.js绑定class和style样式,这次我们一起学习vue.js中的条件渲染。

  • v-if指令(这个前面介绍过)
<h1 v-if="ok">Yes</h1>
  • v-else
<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>

因为 v-if是一个指令,需要将它添加到一个元素上。但是如果我们想切换多个元素呢?此时我们可以把一个 <template>元素当做包装元素,并在上面使用 v-if,最终的渲染结果不会包含它。

<template v-if="ok">
  <h1>Title</h1>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
</template>
  • v-if中也可以添加js内置函数,如:
<div v-if="Math.random() > 0.5">
  Sorry
</div>
<div v-else>
  Not sorry
</div>
注意:v-else元素必须立即跟在 v-if元素的后面——否则它不能被识别。
  • v-show
    v-show的用法和实现效果和v-if基本一样
<h1 v-show="ok">Hello!</h1>

不同的是有 v-show的元素会始终渲染并保持在 DOM 中。v-show是简单的换元素的 CSS 属性 display,而且v-show不支持 <template>语法。

  • 最后是v-if和v-else的比较
在切换 v-if 块时,Vue.js 有一个局部编译/卸载过程,因为 v-if 之中的模板也可能包括数据绑定或子组件。v-if 是真实的条件渲染,因为它会确保条件块在切换当中合适地销毁与重建条件块内的事件监听器和子组件。
v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——在条件第一次变为真时才开始局部编译(编译会被缓存起来)。
相比之下,v-show 简单得多——元素始终被编译并保留,只是简单地基于 CSS 切换。
一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。

列表渲染是在网页中非常常见的功能,我们大多数时候都在与其打交道,下篇文章我们将一起学习vue.js中的更多的关于列表的操作。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 4,671评论 0 29
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 1,680评论 0 6
  • vue.js官网教程学习笔记和学习摘要 起步 安装 一个简单的方法,直接把一个vue.js引入你的HTML页面中,...
    恰皮阅读 3,208评论 2 22
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 10,325评论 4 129
  • 坚持早起,一点点往前推进,到最后几天,调整到7:00起床。 7:25-7:40洗漱穿衣 7:40-8:10精学时间...
    是Penny阅读 115评论 0 1
  • 不久前和朋友聚会,我们坐在那里,听着周边邻桌的人在谈话,一个中年男子说道:“那些旅行创业者虽然在短期内能够实现受益...
    残剑阅读 182评论 0 1
  • 文/小叶 前言 她在礼拜天穿着非常得体的过膝或过小腿的裙子,即便那些年里,女性的裙摆开始越爬越高。——斯蒂芬.金 ...
    博土阅读 148评论 4 2