简单了解vue中的v-if和v-show的区别


Posted in Javascript onOctober 08, 2019

v-if和v-show的区别是前端面试中常问的基础知识点,v-if、v-show顾名思义就是用来判断视图层展示效果的。那么具体是怎么展示呢?v-if和v-show的区别又是什么呢?

首先我们可以来看一下Vue中文社区说明文档的介绍:

简单了解vue中的v-if和v-show的区别

Vue中文社区说明文档中简单来说是:初始渲染的时候进行条件判断展示;

在实际开发中我们会经常使用到v-if和v-show来进行判断展示,我们可以这么理解:

<div class="tc" v-if="pload && list.length<1" >
  <img src="../assets/img/mall_none_order.png" />
</div>

上面的实例中,v-if的作用是通过pload和list.length是否<1来判断这个div是否展示,因为是并且关系,只有当pload和list.length<1两个成立都成立的时候这个div和里面的img才展示和生效,

反之如果判断条件不成立的时候,v-if则不会展示;

<div class="tc" v-show="pload && list.length<1" >
  <img src="../assets/img/mall_none_order.png" />
</div>

上面的案例代码我们其实也可以换成v-show来进行判断,视觉效果也是一样的;注意: 只是视觉效果是一样的,两者之间不是等于的关系(后面来进行分析);用v-show来判断条件pload为真并且list.length<!的时候才成立,div和div里面的img标签才生效;

上面说到v-if和v-show都能实现根据判断条件进行展示的效果,但是这不代表这两者是等于的关系;仅仅只是视觉效果相同而已,下面我们来讲讲v-if和v-show的区别及注意事项:

简单了解vue中的v-if和v-show的区别

使用v-if,我们可以注意到浏览器并没有渲染到元素class为tc的div,这是由于v-if只有当判断条件为真时,浏览器才会生成标签并在浏览中渲染,反之判断条件为假时,浏览器将不会生成标签更不会渲染。

那么我们可以想想,在条件为假的时候浏览器不生成标签不渲染,条件为真的时候浏览器才渲染,这样是不是很消耗页面性能呢?

假如我们的判断条件不只有一种场景而是有多种场景呢?那么这时怎么办呢?Vue给我们提供了v-else指令,v-else是v-if的专属指令,v-else只能和v-if一起连用;

简单了解vue中的v-if和v-show的区别

如果我们使用v-show进行判断渲染,则div标签和里面的img是会生成并渲染的,但是我们注意到浏览器在我们的内联样式中添加了display:none属性,所以实质上v-show标签是存在的,只是浏览器帮我们隐藏了而已;实际上浏览器只是根据判断条件在更改内联样式,条件为真的时候内联样式display:block;条件为假的时候内联样式更改为display:none; v-show实际上比v-if的性能更高,因为v-show只是动态的更改样式而不需要增删DOM元素,但是遇到多种情况分支判断的时候v-show是不能和v-else连用的,碰到这种场景使用v-show的处理办法就是重新再用v-show写另外的逻辑判断;

总结:

(1)、v-if和v-show用于视图层进行条件判断视图展示

(2)、v-if的原理是根据判断条件来动态的进行增删DOM元素,v-show是根据判断条件来动态的进行显示和隐藏元素,频繁的进行增删DOM操作会影响页面加载速度和性能,由此我们可以得出结论:

当您的项目程序不是很大的时候,v-if和v-show都可以用来进行判断展示和隐藏(这种场景使用v-if只是影响不大,并不是没有影响);

当您的项目程序比较大的时候,不推荐使用v-if来进行判断展示和隐藏,推荐使用v-show;

 (3)、只有v-if能和v-else连用进行分支判断,v-show是不能和v-else连用的,如果出现多种条件场景的情况下,可以使用v-if来进行判断

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

Javascript 相关文章推荐
在b/s开发中经常用到的javaScript技术
Aug 23 Javascript
详细讲解JS节点知识
Jan 31 Javascript
使用jQuery轻松实现Ajax的实例代码
Aug 16 Javascript
javascript算法学习(直接插入排序)
Apr 12 Javascript
浅谈javascript中的作用域
Apr 07 Javascript
JavaScript中windows.open()、windows.close()方法详解
Jul 28 Javascript
Bootstrap源码解读下拉菜单(4)
Dec 23 Javascript
Canvas实现放射线动画效果
Feb 15 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 Javascript
10分钟学会js处理json的常用方法
Dec 06 Javascript
在Koa.js中实现文件上传的接口功能
Oct 08 #Javascript
vue-cli和v-charts实现可视化图表过程解析
Oct 08 #Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 #Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 #Javascript
深入学习Vue nextTick的用法及原理
Oct 08 #Javascript
jQuery 筛选器简单操作示例
Oct 02 #jQuery
jQuery 查找元素操作实例小结
Oct 02 #jQuery
You might like
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
我的网上商城创业计划书
2013/12/26 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
第二课堂活动总结
2014/05/07 职场文书