深入理解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的一个图片hover的插件
Apr 24 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
Dec 02 Javascript
用js写了一个类似php的print_r输出换行功能
Feb 18 Javascript
js的alert样式如何更改如背景颜色
Jan 22 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 Javascript
jQuery实现网页顶部固定导航效果代码
Dec 24 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
javascript实现文字无缝滚动
Dec 27 Javascript
node.js中debug模块的简单介绍与使用
Apr 25 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
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 goto语句简介和使用实例
2014/03/11 PHP
php学习笔记之面向对象
2014/11/08 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
PHP7修改的函数
2021/03/09 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
django主动抛出403异常的方法详解
2019/01/04 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
django做form表单的数据验证过程详解
2019/07/26 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
python爬虫用mongodb的理由
2020/07/28 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
公开承诺书格式
2014/05/21 职场文书
学校与家长安全责任书
2014/07/23 职场文书
贷款委托书
2014/08/01 职场文书
国庆促销活动总结
2014/08/29 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
走群众路线学习笔记
2014/11/06 职场文书
检讨书格式范文
2015/05/07 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL