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 相关文章推荐
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
文本框input聚焦失焦样式实现代码
Oct 12 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 Javascript
jQuery easyui datagrid动态查询数据实例讲解
Feb 26 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
Javascript的表单验证-揭开正则表达式的面纱
Mar 18 Javascript
jQuery代码性能优化的10种方法
Jun 21 Javascript
jquery中用jsonp实现搜索框功能
Oct 18 Javascript
基于JavaScript实现弹幕特效
Aug 27 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 Javascript
vue首次渲染全过程
Apr 21 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实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
python模块restful使用方法实例
2013/12/10 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python解惑之整数比较详解
2017/04/24 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
Python实现购物车购物小程序
2018/04/18 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
《天安门广场》教学反思
2014/04/23 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
会计工作态度自我评价
2015/03/06 职场文书
同意离婚答辩状
2015/05/22 职场文书
师德师风培训感言
2015/08/03 职场文书
导游词书写之黄山
2019/08/06 职场文书