Vue.js使用v-show和v-if的注意事项


Posted in Javascript onDecember 13, 2016

关于两者的区别,官网是这样说的:

在切换 v-if 块时,Vue.js 有一个局部编译/卸载过程,因为 v-if 之中的模板也可能包括数据绑定或子组件。v-if 是真实的条件渲染,因为它会确保条件块在切换当中合适地销毁与重建条件块内的事件监听器和子组件。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——在条件第一次变为真时才开始局部编译(编译会被缓存起来)。

相比之下,v-show 简单得多——元素始终被编译并保留,只是简单地基于 CSS 切换。

一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。

下面通过示例来看看在使用v-show与v-if时的注意事项

1、通过Vue.js中v-if指令来判断Vue中某个对象是否为空(该对象与后台传来的json数据绑定),从而判断是否显示分页条,在实际过程中发现,第一次请求后台数据,进行渲染过程后,分页条没有显示,但之后的请求后台数据再渲染,分页条都可正常显示。

问题如图所示:

Vue.js使用v-show和v-if的注意事项

2、原因

查看页面未渲染dom结构,发现上述分页条所在的div,没有出现页面中,这是由于vue组件初始化时,由于list为空导致id为example的div删除了,所以后续分页操作,针对是空dom对象,在第一次渲染结束后,由于list不为空,该div又加到该节点上,所以而后的分页条都可正常显示。

Vue.js使用v-show和v-if的注意事项

3、解决

将v-if指令替换为v-show指令,在条件为真的情况下,v-if将其所在dom及其子dom都删除,而v-show是将该dom加上了“display:none”,使其隐藏了起来。修改代码及效果如下

Vue.js使用v-show和v-if的注意事项

Vue.js使用v-show和v-if的注意事项

使用心得:

对于V-show,V-if如何选择,本人有以下建议:

1、对于管理系统的权限列表的展示,这里可以使用V-if来渲染,如果使用到V-show,对于用户没有的权限,在网页的源码中,仍然能够显示出该权限,如果用V-if,网页的源码中就不会显示出该权限。(在前后台分离情况下,后台不负责渲染页面的场景。)
2、对于前台页面的数据展示,这里推荐使用V-show,这样可以减少开发中不必要的麻烦。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
jquery 入门教程 [翻译] 推荐
Aug 17 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
仿jQuery的siblings效果的js代码
Aug 09 Javascript
javascript的回调函数应用示例
Feb 20 Javascript
jQuery实现切换字体大小的方法
Mar 10 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
Jan 06 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
vue自动化路由的实现代码
Sep 30 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 #Javascript
Es6 写的文件import 起来解决方案详解
Dec 13 #Javascript
JS实现图片垂直居中显示小结
Dec 13 #Javascript
Javascript this 函数深入详解
Dec 13 #Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 #Javascript
简单实现js浮动框
Dec 13 #Javascript
javascript中this关键字详解
Dec 12 #Javascript
You might like
我的群发邮件程序
2006/10/09 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
Django实现图片文字同时提交的方法
2015/05/26 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python的多维空数组赋值方法
2018/04/13 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
java关于string最常出现的面试题整理
2021/01/18 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
荷兰电脑专场:Paradigit
2018/05/05 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
大学生就业自荐信
2013/10/26 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
考博专家推荐信
2014/05/10 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP