v-show和v-if的区别

v-show的用法与v-if基本一致,只不过v-show是改变元素的css属性display。当v-show表达式的值为false是,元素会隐藏,查看DOM结构看到元素上加载了内联样式display:none;

    <h3>v-show 改变css display 的样式</h3>
    <div id="app26">
        <p v-show="show">show = true</p>
    </div>
    <script type="text/javascript">
        var app26 = new Vue({
            el:'#app26',
            data:{
                show:false
            }
        })
    </script>

渲染后查看DOM结构的结果为:

<p style="display:none;">show = true</p>

预览页面上不会显示改行的text内容。

v-if是真正的条件渲染,它会根据表达式适当地销毁或重建元素及绑定的事件或子组件。若表达式初始值为false,则一开始元素/组件并不会渲染,只有当条件第一次变为真时才开始编译。
而v-show只是简单的css属性切换,无论条件真与否,都会被编译。相比之下,v-if更适合条件不经常改变的场景,因为它切换开销相对较大,而v-show适用于频繁切换条件。

原文地址:https://www.cnblogs.com/hy96/p/11718632.html