本文主要给大家介绍了关于vue.js中v-if和v-show的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
1.共同点
都是动态显示DOM元素
2.区别
(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适合频繁切换。
Tips: (1)如果v-show作用的元素,css文件中display:none
,通过v-show进行设置不能显示该元素;
原因:v-show控制显隐,是通过js代码去修改元素的element style,如果value为false,设置display: none;
如果value为true,设置display: '';于是value为true时,只能将element style
中的display效果清除,并不能覆盖css中的display效果;
如下图所示,value=true
时,v-show改变的是element.style
,由于无效,显示效果由css文件中的display决定。
解决办法:
使用v-show的话,在vue解析之前隐藏DOM的话,尽量在style属性里面设置display的值,不要在css文件中。 <ul v-touch:tap="message=2" style="display: none" v-show="show">
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 蔡题谦《我爱你,却依然要看你走》[FLAC分轨][228.62MB]
- 徐玮1986-好久以前[新加坡复刻版][WAV+CUE]
- 林隆璇2007-幸福之初(纯曲)[金革唱片][WAV+CUE]
- 中国音乐地图之听见内蒙古呼麦短调2020[WAV分轨]
- 望江晴.2024-望【华纳】【FLAC分轨】
- 庞龙.2017-走着唱着【星外星】【WAV+CUE】
- 张秀卿.2000-却上心头【锐音音乐】【WAV+CUE】
- 中国音乐地图之听见新疆塔吉克族民间乐曲集2020[WAV+分轨]
- OrchestraOrfeo-RomanzaMusicforStringsbySibeliusBrittenBarberPrt(2024)[24Bit-96
- TheClevelandOrchestra-ProkofievSymphonyNo.6(2024)[24Bit-96kHz]FLAC
- 刘舸《我的寂寞像一条蛇》[320K/MP3][56.06MB]
- 刘舸《我的寂寞像一条蛇》[FLAC/分轨][125.49MB]
- 邓讴歌《三叉戟 电影配乐专辑》[320K/MP3][73.01MB]
- 尹光.2006-浓情香港半世纪2CD【环星】【FLAC分轨】
- 梁咏琪.2001-透明【EEI】【WAV+CUE】