深入理解vue.js中的v-if和v-show

 更新时间:2017年06月22日 09:57:26   作者:Young Dreamer  
这篇文章主要给大家深入的介绍了关于vue.js中v-if和v-show的相关资料,文中详细介绍两者的共同点和区别,通过图文介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

本文主要给大家介绍了关于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">

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 详解vue中computed 和 watch的异同

    详解vue中computed 和 watch的异同

    本篇文章主要介绍了vue中computed 和 watch的异同,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • vue中实现div可编辑并插入指定元素与样式

    vue中实现div可编辑并插入指定元素与样式

    这篇文章主要给大家介绍了关于vue中实现div可编辑并插入指定元素与样式的相关资料,文中通过代码以及图文将实现的方法介绍的非常详细,对大家学习或者使用vue具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • vue-router中关于meta的作用及说明

    vue-router中关于meta的作用及说明

    这篇文章主要介绍了vue-router中关于meta的作用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue利用插件实现打印功能的示例详解

    Vue利用插件实现打印功能的示例详解

    这篇文章主要为大家详细介绍了Vue如何利用vue-print-nb插件实现打印功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学一下
    2023-03-03
  • Vue路由Hash模式分析

    Vue路由Hash模式分析

    Vue-router是Vue的核心组件,主要是作为Vue的路由管理器,Vue-router默认hash模式,本文讲给大家详细分析Vue路由Hash模式,文中有相关的代码示例供大家参考,感兴趣的同学可以借鉴一下
    2023-06-06
  • Vue之计算属性详解

    Vue之计算属性详解

    这篇文章主要为大家介绍了Vue的计算属性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • 一文搞懂Vue八大生命周期钩子函数

    一文搞懂Vue八大生命周期钩子函数

    这篇文章主要介绍了Vue八大生命周期钩子函数,生命周期函数,就是在某个时刻会自动执行的函数,本文带你了解八大生命周期钩子函数,一起来看看吧
    2023-03-03
  • vue3动态路由+菜单栏的实现示例

    vue3动态路由+菜单栏的实现示例

    在后台管理系统,可以根据登录用户的不同返回不同路由,页面也会根据这些路由生成对应的菜单,本文主要介绍了vue3动态路由+菜单栏的实现示例,感兴趣的可以了解一下
    2024-04-04
  • vue3+ts项目中.env配置环境变量与情景配置方式

    vue3+ts项目中.env配置环境变量与情景配置方式

    本文介绍了如何在Vite中配置环境变量和不同的运行模式,环境变量文件以.env开头,仅VITE_前缀的变量会被暴露,开发模式加载.env.development,生产模式加载.env.production,NODE_ENV用于区分开发和生产环境
    2024-10-10
  • 详解 vue.js用法和特性

    详解 vue.js用法和特性

    Vue.js目前已经更新到2.x,功能和语法上有一定升级和修改,本文首先介绍基础内容。感兴趣的朋友一起看看吧
    2017-10-10

最新评论