v-show也是条件渲染指令,不同的是有 v-show 的元素会始终渲染并保持在 DOM 中。和v-if指令不同点在于:v-show是根据表达式之真假值,切换元素的 display CSS 属性,当条件变化时该指令触发过渡效果。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title> v-show </title>
    <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <!-- 用法:根据表达式的值的真假条件渲染元素. 在切换时元素及它的数据绑定/组件被销毁并重建. -->
    <p v-show="show">要显示出来</p>
    <p v-show="hide">不要显示出来</p>
    <!-- 大于170的显示,否则不现实 -->
    <p v-show="height>170">Apollo的身高:{{ height }}CM</p>
    <p v-show="height>150">Jack的身高:{{ height }}CM</p>
</div>

<script>
    // 创建Vue的实例
    let app = new Vue({
        el: '#app',
        data: {
            show: true,
            hide: false,
            height: 168
        }
    })
</script>
</body>
</html>

v-show和v-if的区别:
v-if 是真实的条件渲染,因为它会确保条件块在切换当中适当地销毁与重建条件块内的事件监听器和子组件; v-show 则只是简单地基于 CSS 切换。
v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换使用 v-show 较好,如果在运行时条件不大可能改变则使用 v-if 较好。