深入理解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 相关文章推荐
基于Jquery的动态创建DOM元素的代码
Dec 28 Javascript
jsp+javascript打造级连菜单的实例代码
Jun 14 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
使用javascript获取页面名称
Dec 23 Javascript
JavaScript数组各种常见用法实例分析
Aug 04 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
表格展示利器 Bootstrap Table实例代码
Sep 06 Javascript
浅谈AngularJS中使用$resource(已更新)
Sep 14 Javascript
vue+element-ui+ajax实现一个表格的实例
Mar 09 Javascript
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
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
PHP安装攻略:常见问题解答(三)
2006/10/09 PHP
利用PHP制作简单的内容采集器的代码
2007/11/28 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
input框中的name和id的区别
2016/11/16 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
职专应届生求职信
2013/11/16 职场文书
小学英语课后反思
2014/04/26 职场文书
信息管理专业自荐书
2014/06/05 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
人才市场接收函
2015/01/30 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android