Vue v-if和v-show的区别

本文深入探讨了Vue.js中v-if与v-show指令的区别及使用场景。v-if用于动态添加或删除DOM元素,适用于较少改变的条件判断;v-show则通过修改DOM元素的display属性来控制显示与隐藏,适合频繁切换的场景。文章还提供了代码示例,帮助读者理解如何在实际项目中合理选择这两个指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用v-if和v-else或v-else-if之间不能添加其他元素。

<p v-if="type==1">正确示范</p>
<p v-else>索隆</p>

v-else 元必须紧跟在带 v-if或者v-else-if 后面

<p v-if="type==1">错误示范</p>
<p>路飞</p>
<p v-else>索隆</p>

如果两个元素是完全独立的,不要复用它们”。只需添加一个具有唯一值的 key 属性即可

<template v-if="type=== 'username'" key="1">  
  <label>账号</label>  
  <input placeholder="输入账号">  
</template>  
<template v-else  key="2">  
  <label>密码</label>  
  <input placeholder="输入密码">  
</template> 

v-show

<h1 v-show="show">Hello!</h1> //不显示
<h1 v-show="hien">Hello!</h1> //显示

 data() {
    return {
      hien:true,
      show: false,
    };
  },

相同点:都可以动态操作dom元素的显示隐藏

不同点:

  1.v-if是动态的向DOM树内添加或者删除DOM元素;v-show是通过设置DOM元素的display样式属性控制显隐;

  2.v-if适合不经常改变环境;v-show适合频繁切换;

  3.v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(渲染), v-show是在任何条件下(首次条件是否为真)都被编译(渲染),然后被缓存,而且DOM元素保留;

说明:v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值