一、 用法
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)的時候元素隱藏
- 數據改變之后呢對應的元素的顯示狀態也是會同步更新的