深入理解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 相关文章推荐
JS 文件传参及处理技巧分析
May 13 Javascript
关于js datetime的那点事
Nov 15 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
Oct 14 Javascript
javascript arguments使用示例
Dec 16 Javascript
jquery实现九宫格大转盘抽奖
Nov 13 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
js获取元素的偏移量offset简单方法(必看)
Jul 05 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 Javascript
three.js实现圆柱体
Dec 30 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 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作的文本留言本的例子(一)
2006/10/09 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
python多线程操作实例
2014/11/21 Python
Python进阶篇之字典操作总结
2016/11/16 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
大学生先进事迹材料
2014/02/16 职场文书
工作会议主持词
2014/03/17 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
研究生简历自我评
2015/03/11 职场文书
个人业务学习心得体会
2016/01/25 职场文书
情况说明书格式及范文
2019/06/24 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript