VUE3v-if、v-for、v-show的理解

简介: VUE3v-if、v-for、v-show的理解

在 Vue 3 中,v-if、v-for 和 v-show 是三种常用的指令,它们分别用于条件渲染、列表渲染和元素显示隐藏。


1.v-if

v-if 是一个条件渲染指令,它会根据表达式的真假值来动态地添加或移除元素。如果表达式的值为真,则元素会被添加到 DOM 中;如果为假,则元素会被从 DOM 中移除。v-if 可以与 v-else 和 v-else-if 一起使用,以处理多个条件的情况。


示例:


<template>  
  <div>  
    <p v-if="showElement">这是一个显示的元素。</p>  
    <p v-else>这是一个备选元素。</p>  
  </div>  
</template>  
 
<script>  
export default {  
  data() {  
    return {  
      showElement: true  
    }  
  }  
}  
</script>


v-for

v-for 是一个列表渲染指令,它用于遍历数组或对象的属性,并为每个元素或属性生成一个模板的副本。通过 v-for,你可以轻松地在 Vue 组件中渲染列表或集合。


示例:


<template>  
  <div>  
    <p v-for="(item, index) in items" :key="index">{{ item }}</p>  
  </div>  
</template>  
 
<script>  
export default {  
  data() {  
    return {  
      items: ['Apple', 'Banana', 'Cherry']  
    }  
  }  
}  
</script>

1.v-show

v-show 指令用于控制元素的显示或隐藏。与 v-if 不同,v-show 不会从 DOM 中移除元素,而是通过改变元素的 CSS 属性 display 来实现显示和隐藏的效果。因此,即使元素被隐藏,它仍然会保留在 DOM 中。


示例:


<template>  
  <div>  
    <p v-show="isVisible">这个元素会根据 isVisible 的值显示或隐藏。</p>  
  </div>  
</template>  
 
<script>  
export default {  
  data() {  
    return {  
      isVisible: true  
    }  
  }  
}  
</script>

v-if 和 v-show 的区别:


  • 实现方式:v-if 是真正的条件渲染,它会根据条件动态地向 DOM 树添加或移除元素;而 v-show 只是简单地切换元素的 CSS 属性 display。
  • 编译与性能:v-if 有局部编译/卸载过程,当条件变化时,会销毁和重建内部的事件监听和子组件,因此切换开销较大;而 v-show 初始渲染后只会控制 CSS,性能相对较好。
  • 初始渲染与切换消耗:v-show 的初始渲染消耗较高,因为即使元素隐藏也会渲染到 DOM 中;而 v-if 的切换消耗较高,因为涉及到元素的添加和移除。


在选择使用 v-if 还是 v-show 时,需要根据具体场景和需求进行权衡。如果元素频繁地显示和隐藏,且对性能要求较高,通常使用 v-show;如果元素不常变化,或者需要在条件不满足时完全移除元素,可以使用 v-if。


相关文章
|
JavaScript
如何解决ElementUI中的el-tab-pane组件使用v-show不生效的问题?
如何解决ElementUI中的el-tab-pane组件使用v-show不生效的问题?
1677 3
|
缓存 网络协议 安全
我们来讲一讲 Channel 和 FileChannel
我是小假 期待与你的下一次相遇 ~
435 8
Matlab卷积函数之conv、deconv、conv2、convn
Matlab卷积函数之conv、deconv、conv2、convn
1099 0
|
JavaScript 前端开发 定位技术
maptalks使用高德的瓦片如何进行配置?
maptalks使用高德的瓦片如何进行配置?
1548 12
|
消息中间件 存储 SQL
ClickHouse实时数据处理实战:构建流式分析应用
【10月更文挑战第27天】在数字化转型的大潮中,企业对数据的实时处理需求日益增长。作为一款高性能的列式数据库系统,ClickHouse 在处理大规模数据集方面表现出色,尤其擅长于实时分析。本文将从我个人的角度出发,分享如何利用 ClickHouse 结合 Kafka 消息队列技术,构建一个高效的实时数据处理和分析应用,涵盖数据摄入、实时查询以及告警触发等多个功能点。
1142 0
|
Java 关系型数据库 MySQL
Spring Boot事务配置管理
主要总结了 Spring Boot 中如何使用事务,只要使用 @Transactional 注解即可使用,非常简单方便。除此之外,重点总结了三个在实际项目中可能遇到的坑点,这非常有意义,因为事务这东西不出问题还好,出了问题比较难以排查,所以总结的这三点注意事项,希望能帮助到开发中的朋友。
|
JavaScript
vue常用跳转方式大全,vue站内跳转和打开新页面跳转
vue常用跳转方式大全,vue站内跳转和打开新页面跳转
1836 1
|
Web App开发 编解码 移动开发
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式

热门文章

最新文章