一、 用法
v-show 指令通过改变元素的 css 属性(display)来决定元素是显示还是隐藏。
html:
<div id="app"> <p v-show="type==='科技'">大数据之下的锦鲤:为什么你的微博总抽不到奖</p> </div>
JS:
<script> var app = new Vue({ el: '#app', data: { type:'技术' } }); </script>
渲染后代码:
<p style="display: none;">大数据之下的锦鲤:为什么你的微博总抽不到奖</p>
因为元素样式被设置为 display: none; ,所以元素就被隐藏啦 。
二、 与 v-if 比较
v-show 指令的功能与 v-if 指令相似。不过 v-if 指令会根据表达式重建或销毁元素或组件以及它们所绑定的事件。v-show 指令只是简单地设置 css 属性。
因为 v-if 指令开销较大,所以更适合条件不经常改变的场景。而 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>
三、总结
- v-show指令的作用是:根据真假值切换元素的显示状态
- 原理是修改元素的的CSS属性(display)来决定实现显示还是隐藏
- 指令后面的内容最终都会解析为布尔值
- 值为真(true)的时候元素显示,值为假(false)的时候元素隐藏
- 数据改变之后呢对应的元素的显示状态也是会同步更新的