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模拟地球旋转效果代码实例
Dec 02 Javascript
使用js判断当前时区TimeZone是否是夏令时
Feb 23 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
jQuery+JSON实现AJAX二级联动实例分析
Dec 18 Javascript
PassWord输入框代码分享
Jun 07 Javascript
Vue.js实现拖放效果的实例
Sep 30 Javascript
node跨域请求方法小结
Aug 25 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
webpack 最佳配置指北(推荐)
Jan 07 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
在Vue 中实现循环渲染多个相同echarts图表
Jul 20 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 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
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
PHP7常量数组用法分析
2016/09/26 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
学习ExtJS Column布局
2009/10/08 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
Python ZipFile模块详解
2013/11/01 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
python exit出错原因整理
2020/08/31 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
Python类的继承super相关原理解析
2020/10/22 Python
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
家长评语和期望
2014/02/10 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
安全标语大全
2014/06/10 职场文书
预备党员入党感言
2015/08/01 职场文书
小学班主任工作随笔
2015/08/15 职场文书
你真的会用Mysql的explain吗
2022/03/31 MySQL