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获取select-option-text_value的方法
Dec 26 Javascript
javascript生成json数据简单示例分享
Feb 14 Javascript
javascript限制文本框输入值类型的方法
May 07 Javascript
基于jQuery实现选取月份插件附源码下载
Dec 28 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
Oct 08 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
基于Vue实现支持按周切换的日历
Sep 24 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
May 07 Javascript
浅谈JS的原型和继承
May 08 Javascript
Node.js爬虫如何获取天气和每日问候详解
Aug 26 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
May 01 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 Cookie的使用教程详解
2013/06/03 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
python中List的sort方法指南
2014/09/01 Python
Python中的面向对象编程详解(下)
2015/04/13 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
python实现经典排序算法的示例代码
2021/02/07 Python
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
环保宣传标语
2014/06/12 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
股权转让协议书
2014/12/07 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript