Vue.js 中的 v-show

一、 用法

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)的时候元素隐藏
  • 数据改变之后呢对应的元素的显示状态也是会同步更新的
原文地址:https://www.cnblogs.com/wfy680/p/15379441.html