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 相关文章推荐
用htc组件制作windows选项卡
Jan 13 Javascript
学习YUI.Ext第五日--做拖放Darg&amp;Drop
Mar 10 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
js控制div层的叠加简单方法
Oct 15 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
简单实现js菜单栏切换效果
Mar 04 Javascript
使用原生js编写一个简单的框选功能方法
May 13 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
jQuery AJAX应用实例总结
May 19 jQuery
微信小程序实现发微博功能的示例代码
Jun 24 Javascript
VUE中的v-if与v-show区别介绍
Mar 13 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
利用HBuilder打包前端开发webapp为apk的方法
2017/11/13 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
numpy中索引和切片详解
2017/12/15 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
django使用LDAP验证的方法示例
2018/12/10 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
电子银行营销方案
2014/02/22 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python
redis lua限流算法实现示例
2022/07/15 Redis