暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【vue面试题】v-if 和 v-show 的区别?

前端猎手 2021-07-22
629









前端猎手
 链接每一位开发者,让编程更有趣儿!
关注



我们用一个小功能来说明v-if
v-show
的区别,当点击一个button实现p元素的显示和隐藏。

说明:左边是模板,中间黄色模块是虚拟节点树(vnode),右边是最终生成的元素

v-if 和 v-show 的区别?

v-if
能够控制是否生成vnode,也就间接控制了是否生成对应的dom。当v-if为true时,会生成对应的vnode,并生成对应的dom元素;当其为false时,不会生成对应的vnode,所以不会生成任何的dom元素。

v-show
始终会生成vnode,也就间接导致了始终生成dom。它只是控制dom的display属性,当v-show为true时,不做任何处理;当其为false时,生成的dom的display属性为none。

使用v-if可以有效的减少树的节点和渲染量,但也会导致树的不稳定;而使用v-show可以保持树的稳定,但不能减少树的节点和渲染量。因此,在实际开发中,显示状态变化频繁的情况下应该使用v-show,以保持树的稳定;显示状态变化较少时应该使用v-if,以减少树的节点和渲染量。


 📌 最后


当然也可以关注我的公众号:前端猎手,或是添加我的微信wKavin私底下进行交流。

文章转载自前端猎手,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论