Vue.js v-show 指令详解:用法、与 v-if 对比及实战示例

作者:组件花园

时间:2026-10-23

浏览:510

本文详细解析 Vue.js 中的 v-show 指令,阐述其通过修改 CSS display 属性控制元素显隐的原理。对比 v-show 与 v-if 的性能差异,指出 v-show 适合频繁切换场景,v-if 适合条件固定场景。结合具体代码示例,演示布尔值判断与三目运算符在 v-show 中的实际应用,帮助开发者掌握最佳实践。

文章目录

v-show 指令基础用法

1 用法

v-show 指令通过修改元素的 CSS display 属性来决定元素是显示还是隐藏。

HTML 代码示例如下:


<div id="app">
  <p v-show="type==='科技'">大数据之下的锦鲤:为什么你的微博总抽不到奖</p>
</div>

JavaScript 初始化代码如下:


<script>
  var app = new Vue({
    el: '#app',
    data: {
      type:'技术'
    }
  });
</script>

渲染后的 DOM 结构如下:


<p style="display: none;">大数据之下的锦鲤:为什么你的微博总抽不到奖</p>

由于元素的样式被设置为 display: none;,因此该元素在页面上被隐藏。

v-show 与 v-if 的性能对比

2 与 v-if 比较

v-show 指令的功能与 v-if 指令相似,但实现机制不同。v-if 指令会根据表达式的值重建或销毁元素及其绑定的事件监听器,而 v-show 指令仅简单地切换 CSS 属性。

由于 v-if 涉及 DOM 的创建与销毁,开销较大,因此更适合条件不经常改变的场景。相比之下,v-show 指令适合条件频繁切换的场景。

v-show 实战代码示例

下面介绍 Vue 指令中 v-show 的具体用法。

1、判断某个元素是否显示或隐藏


<el-button v-show="list.power == 1" @click="toUpload" class="toUpload" type="primary">
去上传<i class="el-icon-upload el-icon--right">
</i>
</el-button>

通过接口返回参数 list.power 是否等于 1 进行判断,若等于 1 则值为 true,否则为 false。v-show 指令在值为 true 时显示元素,值为 false 时隐藏元素。

2、三目运算符判断


<a class="warn" v-show="true ? item.ai != null : item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai" rel="external nofollow" rel="external nofollow" >AI</a>

实际上,上述逻辑可以简写为第一种形式的等价表达。


<a class="warn" v-show="!item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai" rel="external nofollow" rel="external nofollow" >AI</a>

这种写法更加简洁。

总结

以上介绍了 Vue.js 中 v-show 指令的用法及注意事项,希望对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章