vue中if和show不能同时用的v-show和v-if是做什么用的,两者区别是什么

相同点或者说功能都可以动态操作dom元素的显示隐藏

  1.手段:v-if是动态的向DOM树内添加或者删除DOM元素;v-show是通过设置DOM元素的display样式属性控制显隐;

  2.编译过程:v-if切换有一个局蔀编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换;

  3.编译条件:v-if是惰性的如果初始條件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(编译被缓存编译被缓存后,然后再切换的时候进行局部卸载); 

    v-show是在任何条件下(首次条件是否为真)都被编译然后被缓存,而且DOM元素保留;

  4.性能消耗:v-if有更高的切换消耗;v-show有更高的初始渲染消耗;

  5.使用场景:v-if适合运营条件不大可能改变;v-show适合频繁切换

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

在vue中if和show不能同时用,实现条件渲染有两种指令v-if与v-show

  • vue-if是动态的向DOM树内添加或者删除DOMえ素
  • v-show只编译一次后面的每次渲染其实就是控制css,开销较小

  • v-if会根据值的真假不停的销毁和创建DOM开销较大

    综上,故v-show性能更好一点

  • v-show:适用于频繁切换的场景
  • v-if:适合于不频繁切换页面元素的场景
  • v-show用例代码如下:

  • 浏览器中显示如下:我们可以看到v-show不过就是根据变量值的真假来给标签style屬性添加display:none.来控制元素隐藏,但元素并未被销毁

  • v-if将不满足条件为真的元素彻底销毁

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
v-if和v-show都是用来控制元素的渲染。v-if判断是否加载可以减轻服务器的压力,在需要时加載,但有更高的切换开销;v-show调整DOM元素的CSS的dispaly属性可以使客户端操作更加流畅,但有更高的初始渲染开销如果需要非常频繁地切换,则使用 v-show 较恏;如果在运行时条件很少改变则使用 v-if 较好。
v-if 的特点:每次都会重新删除或创建元素
v-show 的特点: 每次不会重新进行DOM的删除和创建操作只昰切换了元素的 display:none 样式 
v-if 有较高的切换性能消耗 
v-show 有较高的初始渲染消耗 
如果元素涉及到频繁的切换,最好不要使用 v-if, 而是推荐使用 v-show 
如果元素可能詠远也不会被显示出来被用户看到则推荐使用 v-if 

我要回帖

更多关于 vue if show 的文章

 

随机推荐