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 相关文章推荐
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
Jan 27 Javascript
jQuery ajax调用WCF服务实例
Jul 16 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
Dec 18 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
JS动态加载脚本并执行回调操作
Aug 24 Javascript
Vue.js每天必学之组件与组件间的通信
Sep 08 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
Oct 15 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
javascript实现小型区块链功能
Apr 03 Javascript
js实现简单分页导航栏效果
Jun 28 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分页显示制作详细讲解
2006/12/05 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php 缩略图实现函数代码
2011/06/23 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
js判断是否是手机页面
2017/03/17 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
Python实现远程调用MetaSploit的方法
2014/08/22 Python
JSON Web Tokens的实现原理
2017/04/02 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python常用编译器原理及特点解析
2020/03/23 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
抗洪救灾感谢信
2015/01/22 职场文书
个人专业技术总结
2015/03/05 职场文书
专家推荐信怎么写
2015/03/25 职场文书
监护人证明
2015/06/19 职场文书
分享几个简单MySQL优化小妙招
2022/03/31 MySQL
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server