前言

第8节 条件渲染 - 图1

学习目标

  • v-if 和 v-show 之间的区别?面试题

v-if 控制是否生成 DOM

v-show 控制 DOM 的 display 样式

详情见笔记:「v-if 对比 v-show」链接

  • 如何实现分组条件渲染?

<template>+ v-if结合使用。

使用<template>将需要渲染的元素包裹成组,使用 v-if 控制 <template>即可。

  • 如何使用 key 管理可复用元素的渲染?

若切换后,发现有些元素没必要重新渲染,只要在原始的元素(即将被销毁的元素)稍作改动即可。那么 vue 将不会重新渲染它,vue 会直接改动原有的元素。

若想要让某个元素重新渲染,可以给它绑定指定的 key 值。

  • 什么时候使用 v-if,什么时候使用 v-show?

元素需要频繁切换显示和隐藏,使用 v-show;否则使用 v-if。

主要内容

第8节 条件渲染 - 图2

参考资料

  • 「官方文档」条件渲染:链接
  • 「官方文档」风格指南:链接

条件渲染

v-if

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。

  1. <h1 v-if="awesome">Vue is awesome!</h1>

也可以用 v-else 添加一个“else 块”:

  1. <h1 v-if="awesome">Vue is awesome!</h1>
  2. <h1 v-else>Oh no 😢</h1>

若 awesome 不是 truthy,那么显示 v-else 的内容,否则显示 i-if 的内容。