Vue.js 学习(6) -- Vue指令之:条件渲染

本节的重点是几个Vue指令:

v-if
v-else
v-else-if
v-show

它们共同的特点,就是都会根据条件,对DOM元素进行渲染。

v-if

<h1 v-if="ok">Yes</h1>

h1会被渲染当且仅当ok = true。

v-else

可以为v-if后添加一个v-else:

<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>

这样,如果ok为true,则渲染第一个h1, 否则,渲染第二个h1。

注意,v-else 元素必须紧跟在 v-if 元素或者 v-else-if的后面——否则它不能被识别。

v-else-if

v-if…v-else-if…v-else-if…v-else的逻辑和if…else if…else if…else的逻辑很像:

<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>
<div v-else>
  Not A/B/C
</div>

这样根据type的值,vue就可以分情况对dom进行渲染。

v-show

<h1 v-show="ok">Hello!</h1>

当OK为true的时候,h1会被显示出来。
于v-if不同的是,有 v-show 的元素会始终渲染并保持在 DOM 中。v-show 是简单的切换元素的 CSS 属性 display 。

另外,注意:注意 v-show 不支持 < template > 语法。

对比:
v-if & v-show

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

v-if & v-for
当与v-for一起使用时,v-for具有比v-if更高的优先级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值