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。


相关文章
|
7月前
|
JavaScript
在vue中,v-show 与 v-if 有什么区别?
在vue中,v-show 与 v-if 有什么区别?
46 4
|
JavaScript API
Vue3 set up 的使用
Vue3 set up 的使用
|
4月前
|
JavaScript 前端开发 索引
vue之$set
vue之$set
|
5月前
|
JavaScript 前端开发 大数据
Vue.js 中的 `v-if` 和 `v-show`:理解与应用
Vue.js 中的 `v-if` 和 `v-show`:理解与应用
93 0
|
7月前
|
JavaScript Java
Vue : v-if, v-show
Vue : v-if, v-show
33 0
Vue : v-if, v-show
|
7月前
|
JavaScript 前端开发
Vue中的v-show和v-if有什么区别?
Vue中的v-show和v-if有什么区别?
86 4
|
7月前
|
JavaScript 算法 前端开发
Vue中的 v-show 和 v-if 的区别
Vue中的 v-show 和 v-if 的区别
49 2
|
7月前
|
缓存 JavaScript 前端开发
【Vue】v - if与v - show的区别【超详细版】
【Vue】v - if与v - show的区别【超详细版】
|
JavaScript 前端开发
vue中v-if与v-show的区别
vue中v-if与v-show的区别
37 0
|
JavaScript
warning Replace `‘vue‘` with `“vue“;`
如果报以上错误 不要怀疑直接找 .eslintrc 元凶就是他
179 0