深入理解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 10 Javascript
jQuery之选项卡的简单实现
Feb 28 Javascript
用jquery仿做发微博功能示例
Apr 18 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
jQuery插件ContextMenu自定义图标
Mar 15 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
Mar 25 Javascript
javascript 跨域问题以及解决办法
Jul 17 Javascript
JS继承与闭包及JS实现继承的三种方式
Oct 15 Javascript
浅谈vue项目重构技术要点和总结
Jan 23 Javascript
vue实现滑动到底部加载更多效果
Oct 27 Javascript
微信小程序列表时间戳转换实现过程解析
Oct 12 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 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之变量、常量学习笔记
2008/03/27 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
python批量提取word内信息
2015/08/09 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
python中有关时间日期格式转换问题
2019/12/25 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
Python修改DBF文件指定列
2020/12/19 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
Java如何支持I18N?
2016/10/31 面试题
四群教育工作实施方案
2014/03/26 职场文书
购房协议书
2014/04/11 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
Python获取字典中某个key的value
2022/04/13 Python