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


Posted in Javascript onJune 22, 2017

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

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

解决办法:

使用v-show的话,在vue解析之前隐藏DOM的话,尽量在style属性里面设置display的值,不要在css文件中。 <ul v-touch:tap="message=2" style="display: none" v-show="show">

总结

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

Javascript 相关文章推荐
JavaScript 权威指南(第四版) 读书笔记
Aug 11 Javascript
JavaScript Cookie 直接浏览网站分网址
Dec 08 Javascript
JavaScript 继承机制的实现(待续)
May 18 Javascript
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
node实现定时发送邮件的示例代码
Aug 26 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
对vue中methods互相调用的方法详解
Aug 30 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
Aug 27 Javascript
vue如何从接口请求数据
Jun 22 #Javascript
利用node.js制作命令行工具方法教程(一)
Jun 22 #Javascript
关于在vue-cli中使用微信自动登录和分享的实例
Jun 22 #Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 #Javascript
vue使用stompjs实现mqtt消息推送通知
Jun 22 #Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 #Javascript
详解用webpack2搭建angular2的项目
Jun 22 #Javascript
You might like
教你如何把一篇文章按要求分段
2006/10/09 PHP
php htmlspecialchars加强版
2010/02/16 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
php批量删除操作代码分享
2017/02/26 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
Js面试算法详解
2018/04/08 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
Python urlopen()函数 示例分享
2014/06/12 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
彻底搞懂Python字符编码
2018/01/23 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
python实现画出e指数函数的图像
2019/11/21 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
放假通知格式
2015/04/14 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书