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不生效的问题?
1570 3
|
11月前
|
存储 API 数据安全/隐私保护
如何使用Web Storage进行状态持久化?
如何使用Web Storage进行状态持久化?
|
11月前
|
人工智能 自然语言处理
AI律师上线了?别惊讶,它连合同都能自动看懂!
AI律师上线了?别惊讶,它连合同都能自动看懂!
632 59
|
10月前
|
缓存 网络协议 安全
我们来讲一讲 Channel 和 FileChannel
我是小假 期待与你的下一次相遇 ~
364 8
|
搜索推荐 开发者 UED
如何检测301重定向是否成功:完整指南
301重定向是网站维护与SEO优化的关键技术,用于将旧URL永久指向新URL。本文详解了301重定向的定义、检测必要性及6种检测方法(如浏览器开发者工具、cURL命令、在线工具等),并提供了常见问题排查和最佳实践建议,助您确保重定向成功实施,提升用户体验与搜索引擎优化效果。
1118 19
Matlab卷积函数之conv、deconv、conv2、convn
Matlab卷积函数之conv、deconv、conv2、convn
1045 0
|
SQL JavaScript 前端开发
Hive学习-lateral view 、explode、reflect和窗口函数
Hive学习-lateral view 、explode、reflect和窗口函数
1123 4
|
Web App开发 编解码 移动开发
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
|
JavaScript
vue element upload组件配合axios实现用 “Content-Type“: “multipart/form-data“上传方式导入xls文件
vue element upload组件配合axios实现用 “Content-Type“: “multipart/form-data“上传方式导入xls文件