vue中v-show和v-if的异同及v-show用法


Posted in Javascript onJune 06, 2019

一、官方解释:

1.v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

2.v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

3.相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

4.一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-

show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

二、个人理解:

1.相同点:v-show和v-if都能控制元素的显示和隐藏。

2.不同点:

•实现本质方法不同 ◦v-show本质就是通过设置css中的display设置为none,控制隐藏

◦v-if是动态的向DOM树内添加或者删除DOM元素

•编译的区别 ◦v-show其实就是在控制css
◦v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件

•编译的条件 ◦v-show都会编译,初始值为false,只是将display设为none,但它也编译了
◦v-if初始值为false,就不会编译了

•性能 ◦v-show只编译一次,后面其实就是控制css,而v-if不停的销毁和创建,故v-show性能更好一点。
◦注意点:因为v-show实际是操作display:" "或者none,当css本身有display:none时,v-show无法让显示
◦总结:如果要频繁切换某节点时,使用v-show(无论true或者false初始都会进行渲染,此后通过css来控制显示隐藏,因此切换开销比较小,初始开销较大),如果不需要频繁切换某节点时,使用v-if(因为懒加载,初始为false时,不会渲染,但是因为它是通过添加和删除dom元素来控制显示和隐藏的,因此初始渲染开销较小,切换开销比较大)

vue指令之v-show的用法

1、判断谋个元素是否显示或隐藏

<el-button v-show="list.power == 1" @click="toUpload" class="toUpload" type="primary">去上传<i class="el-icon-upload el-icon--right"></i></el-button>

通过接口里的参数list.power是否等于1,如果等于1,则为“true”,否则为“false”,然后v-show指令,等于true的时候显示,false的时候隐藏。

2、三目运算符判断

<a class="warn" v-show="true ? item.ai != null : item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai">AI</a>

其实这个也可以简写成第一种形式

<a class="warn" v-show="!item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai">AI</a>

这样更简单哦

总结

以上所述是小编给大家介绍的vue中v-show和v-if的异同及v-show用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
csdn 论坛技术区平均给分功能
Nov 07 Javascript
用jQuery扩展自写的 UI导航
Jan 13 Javascript
javascript 事件查询综合 推荐收藏
Mar 10 Javascript
jquery如何改变html标签的样式(两种实现方法)
Jan 16 Javascript
JSON辅助格式化处理方法
Mar 26 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 Javascript
javascript的几种写法总结
Sep 30 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
Dec 28 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
May 07 Javascript
vue 弹框产生的滚动穿透问题的解决
Sep 21 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
vue中的过滤器实例代码详解
Jun 06 #Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 #Javascript
原生js通过一行代码实现简易轮播图
Jun 05 #Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 #Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 #Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 #Javascript
优雅的处理vue项目异常实战记录
Jun 05 #Javascript
You might like
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
php简单统计中文个数的方法
2016/09/30 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
js实现轮播图特效
2020/05/28 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
python使用socket远程连接错误处理方法
2015/04/29 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
用python实现一个简单的验证码
2020/12/09 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
函数指针的定义是什么
2016/08/14 面试题
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
初中体育教学反思
2014/01/14 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
销售辞职信范文
2015/03/02 职场文书
党章学习心得体会2016
2016/01/14 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL