深入理解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 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
10个新的最有前途的JavaScript框架
Mar 12 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
Mar 01 Javascript
jquery获取节点名称
Apr 26 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
AngularJS基础 ng-include 指令示例讲解
Aug 01 Javascript
form+iframe解决跨域上传文件的方法
Nov 18 Javascript
详解angular应用容器化部署
Aug 14 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
利用JavaScript将Excel转换为JSON示例代码
Jun 14 Javascript
vue实现简单加法计算器
Oct 22 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
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
实现vuex原理的示例
2020/10/21 Javascript
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python3对接mysql数据库实例详解
2019/04/30 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
元旦活动感言
2014/03/08 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
司机岗位职责
2015/02/04 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
sql server删除前1000行数据的方法实例
2021/08/30 SQL Server