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 相关文章推荐
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
Jquery时间验证和转换工具小例子
Jul 01 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
Aug 01 Javascript
JS中字符串trim()使用示例
May 26 Javascript
jquery实现简单合拢与展开网页面板的方法
Sep 01 Javascript
Vue.js render方法使用详解
Apr 05 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
JavaScript实现三级联动菜单效果
Aug 16 Javascript
vue 组件 全局注册和局部注册的实现
Feb 28 Javascript
JavaScript中为事件指定处理程序的五种方式分析
Jul 27 Javascript
Vue结合后台导入导出Excel问题详解
Feb 19 Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 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 strtotime函数详解
2009/12/18 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Django接受前端数据的几种方法总结
2016/11/04 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
Python基础知识点 初识Python.md
2019/05/14 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
入党自荐书范文
2014/03/09 职场文书
商务经理岗位职责
2014/07/30 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
《观察物体》教学反思
2016/02/17 职场文书
品德与社会教学反思
2016/02/24 职场文书