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 相关文章推荐
jquery对dom的操作常用方法整理
Jun 25 Javascript
JavaScript按值删除数组元素的方法
Apr 24 Javascript
javascript中的altKey 和 Event属性大全
Nov 06 Javascript
基于javascript实现动态时钟效果
Aug 18 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
Nov 24 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
ionic3 懒加载
Aug 16 Javascript
微信小程序商品详情页规格属性选择示例代码
Oct 30 Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 27 Javascript
vant中的toast轻提示实现代码
Nov 04 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
中英文字符串翻转函数
2008/12/09 PHP
解析link_mysql的php版
2013/06/30 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
node.js开机自启动脚本文件
2014/12/24 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
用js实现放大镜效果
2020/10/28 Javascript
python文件与目录操作实例详解
2016/02/22 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
Django框架模板的使用方法示例
2019/05/25 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
办公室主任岗位职责
2013/11/08 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android