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 相关文章推荐
JavaScript 获取事件对象的注意点
Jul 29 Javascript
判断iframe是否加载完成的完美方法
Jan 07 Javascript
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 Javascript
jquery text()方法取标签中的文本
Jul 25 Javascript
js实现圆盘记速表
Aug 03 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
Vue 中的compile操作方法
Feb 26 Javascript
详解解决使用axios发送json后台接收不到的问题
Jun 27 Javascript
在vue中给列表中的奇数行添加class的实现方法
Sep 05 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整合PayPal支付
2015/06/11 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python实现月食效果实例代码
2019/06/18 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
Python中的全局变量如何理解
2020/06/04 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
营销人才自我鉴定范文
2013/12/25 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP