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。


相关文章
|
前端开发
react-router中的render、children、component
react-router中的render、children、component
524 1
|
存储 搜索推荐 API
Electron-store本地存储功能
【10月更文挑战第18天】Electron-store 无疑为我们的 Electron 应用开发提供了强大的支持。它的本地存储功能不仅方便实用,而且性能优异,为我们打造高质量的应用提供了坚实的基础。
|
6月前
|
Go
Go语言接口的定义与实现
Go 语言的接口提供了一种灵活的多态机制,支持隐式实现和抽象编程。本文介绍了接口的基本定义、实现方式、空接口的使用、类型断言以及接口组合等核心概念,并探讨了接口与 nil 的关系及应用场景。通过示例代码详细说明了如何利用接口提升代码的可扩展性和可测试性,总结了接口的关键特性及其在依赖注入、规范定义和多态调用中的重要作用。
274 14
|
6月前
|
搜索推荐 开发者 UED
如何检测301重定向是否成功:完整指南
301重定向是网站维护与SEO优化的关键技术,用于将旧URL永久指向新URL。本文详解了301重定向的定义、检测必要性及6种检测方法(如浏览器开发者工具、cURL命令、在线工具等),并提供了常见问题排查和最佳实践建议,助您确保重定向成功实施,提升用户体验与搜索引擎优化效果。
446 19
|
存储 前端开发 Java
Element el-upload 文件上传/图片上传/拖拽上传/附带参数/附带请求头部详解
文目录 1. 前言 2. 基本用法 2.1 前端部分 2.2 后端部分 2.3 获取后端返回信息 3. 外观功能介绍 3.1 拖拽上传 3.2 显示图片 3.3 设置文件列表样式 3.4 显示提示信息 4. 事件功能介绍 4.1 限制上传文件数量 4.2 限制上传文件类型和大小 4.3 移除文件处理 4.4 手动上传 5. 附带参数 6. 附带请求头部 7. 小结
7489 0
|
前端开发 虚拟化
简单记录使用 ElementPlus 的虚拟化树形控件(el-tree-v2)心得
这篇文章分享了作者使用ElementPlus的虚拟化树形控件`el-tree-v2`的心得,展示了其基本用法和如何通过自定义模板来增强树节点的交互性。
4076 1
简单记录使用 ElementPlus 的虚拟化树形控件(el-tree-v2)心得
Server-Sent Events 和 WebSocket 之间有什么区别
Server-Sent Events (SSE) 和 WebSocket 分别代表单向和双向通信机制。SSE,基于 HTTP,仅允许服务器向客户端发送事件流;而 WebSocket 是双向实时通信协议,支持客户端与服务器的双向交互。SSE适合低实时性场景,依赖长轮询或流传输;WebSocket 提供更低延迟,适用于高实时性应用。两者在现代浏览器中普遍被支持,但旧版浏览器或特定网络环境可能影响兼容性。选择哪种机制取决于实际需求,如通信方向、实时性要求及目标浏览器支持。
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
API
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
3714 1
Vue3如何使用element-ui,vue3使用Element,Element使用
Vue3如何使用element-ui,vue3使用Element,Element使用