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

相关推荐
zwjapple2 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
像风一样自由20204 小时前
HTML与JavaScript:构建动态交互式Web页面的基石
前端·javascript·html
aiprtem5 小时前
基于Flutter的web登录设计
前端·flutter
浪裡遊5 小时前
React Hooks全面解析:从基础到高级的实用指南
开发语言·前端·javascript·react.js·node.js·ecmascript·php
why技术5 小时前
Stack Overflow,轰然倒下!
前端·人工智能·后端
幽络源小助理5 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
GISer_Jing5 小时前
0704-0706上海,又聚上了
前端·新浪微博
止观止6 小时前
深入探索 pnpm:高效磁盘利用与灵活的包管理解决方案
前端·pnpm·前端工程化·包管理器
whale fall6 小时前
npm install安装的node_modules是什么
前端·npm·node.js
烛阴6 小时前
简单入门Python装饰器
前端·python