![深度探索Vue.js:原理剖析与实战应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/137/52843137/b_52843137.jpg)
上QQ阅读APP看书,第一时间看更新
2.4.4 v-show条件渲染
v-show指令与v-if有类似的能力,都可以通过布尔结果决定标签是否展示。与v-if不同的是,v-show不存在v-else-if的情况。要么显示,要么不显示。另外v-show修饰的标签是通过display:none来隐藏的,而v-if修饰的标签在判断为false的情况不会插入HTML文档中,因此当涉及频繁显示隐藏的元素时推荐使用v-show来修饰,这样可减少在条件切换时HTML标签频繁地创建和删除所带来的性能开销。
v-show指令的使用方式如下:
![](https://epubservercos.yuewen.com/EAE1DD/31397881207142106/epubprivate/OEBPS/Images/Figure-P32_1167.jpg?sign=1739157794-Fzfe8TdmNwPgizMEXeBM7OUsjjRxKOjP-0-98e0391a93642c438d759f322f0612e8)
v-show的实际案例代码如下:
![](https://epubservercos.yuewen.com/EAE1DD/31397881207142106/epubprivate/OEBPS/Images/Figure-P32_1175.jpg?sign=1739157794-jmK5r8ElQXUdDurUMy8RqWGBYGvovOBu-0-9d42b4c7f92e21488422e32af78df5b0)
可以发现网页中会出现一个可以切换选中和取消的复选框,这里使用了v-model指令来对checkbox进行绑定,当选中checkbox时,show属性为true;当未选中checkbox时,show属性为false。这样网页中通过v-show绑定的div就会随着show值的变化而动态地切换显示和隐藏,代码运行结果如图2-6所示。
![](https://epubservercos.yuewen.com/EAE1DD/31397881207142106/epubprivate/OEBPS/Images/Figure-P33_1181.jpg?sign=1739157794-sQF2VRmBNTHTMH7u8jj7FzCcavlChhg5-0-d2bd45d2cee1f69758715c540d709bd0)
图2-6 v-show案例的运行结果
v-show的特性是通过CSS样式来切换元素显示和隐藏的,可以通过浏览器Web控制台中的Elements查看器查看本页加载的HTML文档的具体样式。当show为false时元素在网页中已经隐藏,但是它仍然存在于HTML文档对象中,它的隐藏是通过行内样式display:false实现的,如图2-7所示。
![](https://epubservercos.yuewen.com/EAE1DD/31397881207142106/epubprivate/OEBPS/Images/Figure-P33_1185.jpg?sign=1739157794-GWKAkap8hCGierz6GHb87nF73JFQiXFw-0-1e10b91a0937d2d14ac62e7dd302cf0c)
图2-7 v-show的渲染方式案例