后端前行Vue之路(四):条件渲染v-if和v-show

1.概述

随着前端开发的不断发展,动态渲染页面成为了常见的需求。Vue.js 作为一款流行的前端框架,提供了多种方式来实现条件渲染,所谓条件渲染就是一种根据数据的值来动态决定是否渲染特定的元素或组件的方式。Vue 实现条件渲染的指令包括 v-ifv-else-ifv-elsev-show 等指令。本文将介绍这些指令的使用方法和适用场景,并给出一些最佳实践建议。

2.v-if

v-if 指令用于根据表达式的值来决定是否渲染特定的元素或组件。它会根据表达式的真假动态地销毁或创建元素。例如:

xml 复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>条件渲染</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h2 v-if="isReal">isReal为true, {{msg}}</h2>
      <h2 v-if="!isReal">isReal为false, {{msg}}<h2>
      <h2 v-if="n===1">n等于1, {{msg}}</h2>
    </div>
  </body>
​
  <script type="text/javascript">
    Vue.config.productionTip = false
​
    const vm = new Vue({
      el:'#root',
      data:{
        isReal:true,
        n:1,
        msg:"我显示出来了"
      }
    })
  </script>
</html>

3. v-else-if和v-else

v-else-if 指令用于在 v-if 指令的后面添加一个额外的条件,如果之前的条件不满足,则检查这个条件;如果满足,则渲染该元素或组件。v-else 指令用于在 v-ifv-else-if 的后面添加一个默认条件,如果之前的条件都不满足,则渲染该元素或组件。

ini 复制代码
      <h2 v-if="n===1">n等于1, {{msg}}</h2>
      <h2 v-else-if="n===2">n等于2, {{msg}}</h2>
      <h2 v-else="n===3">n等于, {{msg}}</h2>

4.v-show

v-show 指令与 v-if 类似,用于根据表达式的值来决定是否渲染元素或组件。不同的是,v-show 只是简单地切换元素的 CSS display 属性,而不是真正地销毁和重新创建元素。

xml 复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>条件渲染</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h2 v-if="isReal">isReal为true, {{msg}}</h2>
      <h2 v-if="!isReal">isReal为false<>
      <h2 v-if="n===1">n等于1, {{msg}}</h2>
      <h2 v-else-if="n===2">n等于2, {{msg}}</h2>
      <h2 v-else="n===3">n等于, {{msg}}</h2>
      <h2 v-show="isShow">isShow为true,{{msg}}</h2>
    </div>
  </body>
​
  <script type="text/javascript">
    Vue.config.productionTip = false
​
    const vm = new Vue({
      el:'#root',
      data:{
        isReal:true,
        isShow:false,
        n:2,
        msg:"我显示出来了"
      }
    })
  </script>
</html>

在谷歌浏览器打开该html文件,开启开发者工具查看你会发现:

可以得出如下结论:

  • 当需要在不同条件下选择性地渲染元素或组件时,可以使用 v-ifv-else-ifv-else
  • 当需要频繁地切换元素的显示和隐藏时,可以使用 v-show,因为它只是切换 CSS 属性,性能比较高;
  • 如果条件不太频繁变化,可以使用 v-if,因为它会根据条件的真假销毁或创建元素,减少页面的渲染压力

5. 在

相关推荐
我命由我123455 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
Hopebearer_6 小时前
页面突然只剩 DOM?一次静态资源版本错配排查
前端·部署
东风破_6 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
java1234_小锋8 小时前
Vue3专题 - 组件基础
vue.js·vite
圣殿骑士-Khtangc8 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
ShineWinsu8 小时前
对于C++:C++11中lambda、function、bind的解析
c++·面试·笔试·开发·lambda·bind·function
码匠许师傅8 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
BigTopOne9 小时前
【ijkplayer】 硬解码流程
前端
kyriewen9 小时前
DeepSeek Harness开源第一天我就上手了——和Claude Code的差距比想象中大
前端·ai编程·deepseek
捡田螺的小男孩9 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员