后端前行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. 在

相关推荐
沉默中爆发的IT男3 分钟前
BGP基础配置实验总结
linux·服务器·前端
朝阳395 分钟前
前端学习方法(含前端成神之路)
前端·学习方法
今晚务必早点睡10 分钟前
Ubuntu 部署 RuoYi-Vue-FastAPI 完整实战指南(含踩坑总结)
vue.js·ubuntu·fastapi
张元清14 分钟前
head.tsx 就是一个 React 组件:用 loader 数据动态生成 SEO meta
前端·javascript·面试
前端那点事17 分钟前
Vue keep-alive 原理全解析(Vue2+Vue3适配)
vue.js
lemon_yyds19 分钟前
Element UI 实践踩坑- date-picker 组件 定制化type="daterange"
前端·css
Alice-YUE21 分钟前
ai对话平台中的functioncalling+mcp
前端·笔记·学习·语言模型
MXN_小南学前端40 分钟前
Vue 视频上传实战:视频预览、MediaRecorder 压缩与自定义上传
前端·vue.js
programhelp_43 分钟前
WeRide OA 2026 高频真题分享 & 详细备战指南
经验分享·算法·面试·职场和发展
Hilaku1 小时前
AI 生成的代码都是一坨屎?聊聊怎么给 Agent 制定工程约束
前端·javascript·ai编程