随笔 - 142  文章 - 14  评论 - 0  阅读 - 70370

学习-Vue3-条件渲染

  • v-if支持在 <template> 元素上使用,能和 v-else 搭配使用。
  • v-show 不支持在 <template> 元素上使用, 也不能和 v-else 搭配使用。
复制代码
<template>
<!-- <template> 上的 v-if
      因为 v-if 是一个指令,它必须依附于某个元素。但如果我们想要切换不止一个元素呢?
      在这种情况下我们可以在一个 <template> 元素上使用 v-if,这只是一个不可见的包装器元素,最后渲染的结果并不会包含
      这个 <template> 元素。-->
  <template v-if="true">
    <!-- 切换使得下面两段文字同时显示 -->
    <p>第一行文字可以显示吗?</p>
    <p>第二行文字可以显示吗?</p>
  </template>
</template>

<script setup>

</script>
复制代码

 视图:

v-show 与 v-if 的区别:

v-show会在 DOM渲染中保留该元素,v-show仅切换了该元素上名为 display 的 CSS 属性。

v-if vs. v-show

 v-if 是“真实的”按条件渲染,因为它确保了在切换时,条件区块内的事件监听和子组件都会被销毁与重建。

v-if 也是惰性的:如果在初次渲染时条件为 false,则不会做任何事。条件区块只有当条件首次变为 true 时才被渲染。

相比之下, v-show 简单许多,元素无论初始条件如何,时钟会被渲染,只有CSS dispaly 属性会被切换。

总的来说, v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要频繁切换,则使用 v-show 更好;如果在运行时绑定条件很少改变,则 v-if 会更合适。

v-if vs. v-for

warning: 同时使用 v-if 和 v-for 是不推荐的,因为这样二者的优先级不明显。

当 v-if 和 v-for 同时存在于一个元素上的时候,v-if 会首先被执行。

posted on   法老的微笑  阅读(129)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示