深入理解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 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
May 19 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
JavaScript模仿Pinterest实现图片预加载功能
Oct 25 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
简单的vue-resourse获取json并应用到模板示例
Feb 10 Javascript
vuejs 动态添加input框的实例讲解
Aug 24 Javascript
vue.js 实现点击按钮动态添加li的方法
Sep 07 Javascript
vue-router路由模式详解(小结)
Aug 26 Javascript
微信小程序 checkbox使用实例解析
Sep 09 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
Apr 19 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
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
Python做简单的字符串匹配详解
2017/03/21 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
vscode 远程调试python的方法
2017/12/01 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
python ChainMap的使用和说明详解
2019/06/11 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
教师党员公开承诺书
2014/03/25 职场文书
房产代理公证处委托书
2014/04/04 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
运动员入场前导词
2015/07/20 职场文书