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 相关文章推荐
Javascript中的Split使用方法与技巧
Mar 09 Javascript
30个最佳jQuery Lightbox效果插件分享
Apr 11 Javascript
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
微信小程序教程系列之视图层的条件渲染(10)
Apr 19 Javascript
JavaScript 判断对象中是否有某属性的常用方法
Jun 14 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
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
收藏的一个php小偷的核心程序
2007/04/09 PHP
php 安全过滤函数代码
2011/05/07 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
js转义字符介绍
2013/11/05 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
python验证码识别实例代码
2018/02/03 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
创联软件面试题笔试题
2012/10/07 面试题
市场营销专业个人自荐信格式
2013/09/21 职场文书
办公文员的工作岗位职责
2013/11/12 职场文书
环卫处个人工作总结
2015/03/04 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers