VUE中的v-if与v-show区别介绍


Posted in Vue.js onMarch 13, 2022

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:如果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中的v-if与v-show区别介绍

解决办法:使用v-show的话,在vue解析之前隐藏DOM的话,尽量在style属性里面设置display的值,不要在css文件中。

<ul v-touch:tap="message=2" style="display: none" v-show="show">

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue+iview实现分页及查询功能
Nov 17 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
vue打包时去掉所有的console.log
Apr 10 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
Vue.js中v-bind指令的用法介绍
Mar 13 #Vue.js
Vue2.0搭建脚手架
Vue.js中v-for指令的用法介绍
Mar 13 #Vue.js
Vue如何清空对象
Mar 03 #Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 #Vue.js
vue实现移动端div拖动效果
Mar 03 #Vue.js
vue实现滑动解锁功能
You might like
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
Python版微信红包分配算法
2015/05/04 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
使用pip安装python库的多种方式
2019/07/31 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
在pycharm中显示python画的图方法
2019/08/31 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
什么是servlet链?
2014/07/13 面试题
实习生自我鉴定
2013/12/12 职场文书
2014升学宴答谢词
2014/01/26 职场文书
单位工作证明
2014/10/07 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python