深入理解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 data日期初始化的5种方法
Dec 29 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
JavaScript判断是否为数字的4种方法及效率比较
Apr 01 Javascript
jquery validate表单验证的基本用法入门
Jan 18 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
详解angular中通过$location获取路径(参数)的写法
Mar 21 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
js实现整体缩放页面适配移动端
Mar 31 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开发中四种查询返回结果分析
2011/01/02 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php调整服务器时间的方法
2015/04/03 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
python定时器使用示例分享
2014/02/16 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Python类class参数self原理解析
2020/11/19 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
中间件分为哪几类
2012/03/14 面试题
《寓言两则》教学反思
2014/02/27 职场文书
党员岗位承诺书
2014/03/25 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
社区反邪教工作方案
2014/06/16 职场文书
个人查摆剖析材料
2014/10/04 职场文书