如何区分vue中的v-show 与 v-if


Posted in Javascript onSeptember 08, 2020

1. v-show

不管初始的条件是什么,元素总是会被渲染,并且只是简单的基于 CSS display: none 或者 display: block 的属性进行切换。

2. v-if

会根据初始的条件(data里自己的定义的数据)来进行真正的渲染(组件真正的销毁和重建),如果条件为真,才会开始渲染条件块,如果条件为假,则不会渲染条件块。

注意: v-if不要和v-for一起使用!

当和 v-for 一起使用时,v-for 的优先级比 v-if 更高,详见 vue官网关于 v-for 的详细描述 ,为什么不能一起使用,以下我用代码来解释一下。

<ul>
 <li
 v-for = "(item, index) in list"
 v-if = "isActive"
 :key = "item.id"
 >
 {{ item.name }}
 </li>
</ul>

以上代码将会经过如下运算

this.list.map( user=> {
 if (isActive) {
 return user.name
 }
})

因此,哪怕我们只渲染一小部分元素,也得在每次重新渲染的时候遍历整个列表,不论 isActive 是否发生了变化。如果 list 的数据有很多,就会造成性能低,页面可能卡顿的现象出现。

总结

共同点:

v-if和v-show都是通过判断绑定数据的true\false来展示的

不同点:

v-if只有在判断为true的时候才会对数据进行渲染,false的时候把包含的代码进行删除。除非再次进行数据渲染,v-if才会重新判断。可以说是用法比较倾向于对数据一次操作。
v-show是无论判断是什么都会先对数据进行渲染,只是false的时候对节点进行display:none;的操作。所以再不重新渲染数据的情况下,改变数据的值可以使数据展示或隐藏。

用法推荐:

v-if更适合于带有权限的操作,渲染时判断权限数据,有则展示该功能,没有则删除。
v-show更适合于日常使用,可以减少数据的渲染,减少不必要的操作。
综上,v-if 有更高的切换消耗,而 v-show 有更高的初始渲染消耗。
因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变,更倾向功能权限性的话 v-if 较好。

以上就是如何区分vue中的v-show 与 v-if 的详细内容,更多关于v-show 与 v-if 的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
Javascript 获取LI里的内容
Dec 17 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
javascript制作的滑动图片菜单
May 15 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
浅谈node的事件机制
Oct 09 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
Node.js API详解之 querystring用法实例分析
Apr 29 Javascript
谈谈JavaScript中的函数
Sep 08 #Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
Sep 08 #Javascript
浅析JavaScript 函数柯里化
Sep 08 #Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 #Javascript
JavaScript 事件代理需要注意的地方
Sep 08 #Javascript
Vue axios 跨域请求无法带上cookie的解决
Sep 08 #Javascript
详解JavaScript的this指向和绑定
Sep 08 #Javascript
You might like
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
php图片裁剪函数
2018/10/31 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
使用PDB简单调试Python程序简明指南
2015/04/25 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python实现汉诺塔方法汇总
2016/07/25 Python
python实现顺时针打印矩阵
2019/03/02 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
后勤人员岗位职责
2013/12/17 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
材料会计岗位职责
2014/03/06 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2016年元旦寄语
2015/08/17 职场文书