v-show和v-if的区别

简介:

1.v-show

v-show指令的作用是:根据真假值切换元素的显示状态,是响应式的

语法表达v-show = " 表达式 "

原理是修改元素的的CSS属性(display)来决定实现显示还是隐藏

指令后面的内容最终都会解析为布尔值

值为真(true)的时候元素显示,值为假(false)的时候元素隐藏

数据改变之后呢对应的元素的显示状态也是会同步更新的


<body>
    <div id="app">
      <input type="button" value="切换显示" @click="changeIsShow" />
      <p v-show="isShow">不装了,我摊牌了,没错你要找的就是我</p>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
      var  app = new Vue({
        el:"#app",
        data:{
          isShow:false
        },
        methods:{
          changeIsShow(){
            this.isShow = !this.isShow
          }
        }
      })
    </script>
  </body>

2.v-if


  • v-if指令的作用:根据表达式的真假切换元素的显示状态
  • v-if = "表达式"
  • 本质是通过操纵dom元素来进行切换显示
  • 表达式的值为true的时候元素存在于dom树中,为false的时候从dom树中移除
<body>
    <div id="app">
      <input type="button" value="点我切换显示" @click="changeIsShow" />
      <p v-if="isShow">不装了,我摊牌了,没错你要找的就是我</p>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
      var  app = new Vue({
        el:"#app",
        data:{
          isShow:false
        },
        methods:{
          changeIsShow(){
            this.isShow = !this.isShow
          }
        }
      })
    </script>
  </body>


3.v-show和v-if的区别

1.原理

v-show指令:元素始终被渲染到HTML,它只是简单的伪元素设置css的style属性,当不满足条件的元素被设置style=“display:none”的样,是通过修改元素的的CSS属性(display)来决定实现显示还是隐藏

v-if指令:满足条件是会渲染到html中,不满足条件时是不会渲染到html中的,是通过操纵dom元素来进行切换显示

2.应用场景

v-if需要操作dom元素,有更高的切换消耗,v-show只是修改元素的的CSS属性有更高的初始渲染消耗,如果需要非常频繁的切换,建议使用v-show较好,如果在运行时条件很少改变,则使用v-if较好



相关文章
|
JavaScript 小程序 Java
基于Java的高校宣讲会管理系统设计与实现(亮点:选题新颖、功能实用、老师看见直接过!)
基于Java的高校宣讲会管理系统设计与实现(亮点:选题新颖、功能实用、老师看见直接过!)
130 0
|
存储 程序员 编译器
堆和栈内存的区别是什么
【8月更文挑战第23天】堆和栈内存的区别是什么
1300 4
|
存储 安全 API
权限设计种类【RBAC、ABAC】
权限设计种类【RBAC、ABAC】
2219 2
|
运维 Linux
Linux系统调优详解(五)——磁盘IO状态查看命令
Linux系统调优详解(五)——磁盘IO状态查看命令
547 5
|
设计模式 开发者 UED
Flutter笔记:DefaultTextStyle和DefaultTextHeightBehavior解读
Flutter笔记:DefaultTextStyle和DefaultTextHeightBehavior解读
322 0
|
关系型数据库 MySQL 网络安全
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
这篇文章提供了解决Navicat无法连接腾讯云服务器上MySQL问题的步骤,包括调整防火墙设置、更新MySQL权限和检查远程连接配置。
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
|
监控 NoSQL Java
Spring Boot Actuator 使用和常用配置
Spring Boot Actuator 使用和常用配置
1774 5
|
存储 Kubernetes API
在K8S中,calico有哪些组件?都是做什么的?
在K8S中,calico有哪些组件?都是做什么的?
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是R中的一个宝藏包,用于GO富集分析的创新可视化。它提供多种图表类型,如GOBar、GOBubble、GOCircle、GOChord、GOHeat和GOCluster,以及GOVenn。通过调整参数,用户可自定义颜色、大小和排序。例如,GOBar和GOBubble展示富集条形和气泡,GOCircle以环形图表示,GOChord描绘基因和过程间关系,而GOHeat和GOCluster提供热图和聚类视图。此外,还有GOVenn用于绘制Venn图。包简化了数据准备和绘图过程,适合快速高效地展示复杂分析结果。别忘了引用创始人Walter等人的工作。
1633 1
|
移动开发 HTML5
编程笔记 html5&css&js 024 HTML表单元素
编程笔记 html5&css&js 024 HTML表单元素
103 0