深入理解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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
javascript使用正则获取url上的某个参数
Sep 04 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
Vue如何从1.0迁移到2.0
Oct 19 Javascript
JavaScript面向对象程序设计创建对象的方法分析
Aug 13 Javascript
vue+SSM实现验证码功能
Dec 07 Javascript
你不可不知的Vue.js列表渲染详解
Oct 01 Javascript
js实现倒计时秒杀效果
Mar 25 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轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
js运动事件函数详解
2016/10/21 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
使用Python编写vim插件的简单示例
2015/04/17 Python
Python 多进程和数据传递的理解
2017/10/09 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
寻找最美家庭活动方案
2014/08/20 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
Python初学者必备的文件读写指南
2021/06/23 Python
Elasticsearch 索引操作和增删改查
2022/04/19 Python
Python代码实现双链表
2022/05/25 Python