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 相关文章推荐
Textarea与懒惰渲染实现代码
Jan 04 Javascript
node+express+ejs制作简单页面上手指南
Nov 26 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
JavaScript使用yield模拟多线程的方法
Mar 19 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
bootstrap手风琴制作方法详解
Jan 11 Javascript
AngularJs上传前预览图片的实例代码
Jan 20 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
JavaScript闭包原理与用法实例分析
Aug 10 Javascript
vue项目引入字体.ttf的方法
Sep 28 Javascript
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
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中实现中文字符进制转换原理分析
2011/12/06 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
Vue.directive()的用法和实例详解
2018/03/04 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
Python读写文件方法总结
2015/06/09 Python
python生成IP段的方法
2015/07/07 Python
python通过socket查询whois的方法
2015/07/18 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
pytorch梯度剪裁方式
2020/02/04 Python
如何验证python安装成功
2020/07/06 Python
中国电视购物:快乐购
2017/02/04 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
优秀员工评语
2014/02/10 职场文书
房产继承公证书
2014/04/09 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
会议通知
2015/04/15 职场文书
综治目标管理责任书
2015/05/11 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
Redis命令处理过程源码解析
2022/02/12 Redis
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python