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函数库)S.Sams Lifexperience ScriptClassLib
Apr 29 Javascript
JScript的条件编译
May 29 Javascript
function foo的原型与prototype属性解惑
Nov 19 Javascript
JavaScript全局函数使用简单说明
Mar 11 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
Mar 31 Javascript
AngularJS表单验证功能分析
May 26 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
vue通信方式EventBus的实现代码详解
Jun 10 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 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获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
javascript 鼠标拖动图标技术
2010/02/07 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
深入理解React中何时使用箭头函数
2017/08/23 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
Python之用户输入的实例
2018/06/22 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
Python dict的常用方法示例代码
2020/06/23 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
介绍一下XMLHttpRequest对象
2012/02/12 面试题
我的大学生活职业生涯规划
2014/01/02 职场文书
单位提档介绍信
2014/01/17 职场文书
职工运动会邀请函
2014/01/19 职场文书
调解协议书范本
2016/03/21 职场文书
节约用水广告语60条
2019/11/14 职场文书