深入理解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 相关文章推荐
摘自启点的main.js
Apr 20 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
Nov 30 Javascript
对xmlHttp对象方法和属性的理解
Jan 17 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
Aug 15 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
Sep 07 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
Apr 17 Javascript
vue+iview/elementUi实现城市多选
Mar 28 Javascript
Vue 实例事件简单示例
Sep 19 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
Oct 29 Javascript
vue element el-transfer增加拖拽功能
Jan 15 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
浅谈node的事件机制
2017/10/09 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
跟老齐学Python之用Python计算
2014/09/12 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
初中校园之声广播稿
2014/01/15 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
马智宇结婚主持词
2014/04/01 职场文书
关于运动会的广播稿
2014/09/22 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
golang生成并解析JSON
2022/04/14 Golang