v-if 与v-show
2020-03-02 12:43 在思考中成长 阅读(196) 评论(0) 收藏 举报在vue里面很多人都用的最常用的 v-if 与v-show
先讲讲v-show
v-show与v-if的用法基本一致,只不过v-show是改变元素的css属性display。当v-show表达式的值为false是,元素会隐藏,查看DOM结构看到元素上加载了内联样式display:none;
所以说元素是存在于DOM 结构上的
<h2>v-show 改变css display</h2> <div id="app"> <p v-show="show">show = true</p> </div> <script type="text/javascript"> var app = new Vue({ el:'#app', data:{ show:false } }) </script>
P元素只被隐藏,但dom已经渲染
v-if
v-if是真正的条件渲染,它会根据表达式适当地销毁或重建元素及绑定的事件或子组件。若表达式初始值为false,则一开始元素/组件并不会渲染,只有当条件第一次变为真时才开始编译。
总结
v-show只是简单的css属性切换,无论条件真与否,都会被编译。相比之下,v-if更适合条件不经常改变的场景,因为它切换开销相对较大,而v-show适用于频繁切换条件。