对于v-if 和 v-show的选择 --Vue.js
2017-06-04 12:12
1451 查看
引言:
对于v-if和v-show都可以控制元素的显隐,但是因为两者控制显隐方式的不同,所以试用的场合还是不同的。
一、v-if 控制显隐方式
v-if 是惰性的,如果初始渲染的条件为假,那么什么事情都不做,在第一次变为真的时候才开始局部渲染。这就导致当条件为假的时候在条件块里面的子组件不会被渲染,而且时间监听器也不会生效。当条件切换时会有销毁、重建的过程,所以说,v-if才是真正的条件渲染
二、v-show控制显隐方式
v-show其实是通过控制节点css属性中的display:none与否来控制是否显示。所以v-show无论条件真假都会进行编译并且保留编译,只是简单基于css切换
总结:
1、根据对比可知,v-if有更高的切换消耗,v-show有更高的初始渲染消耗。因此,如果需要频繁切换就采用v-show,如果运行条件不太可能改变,就采用v-if
2、v-if与v-else搭配,v-show也可以使用取反来模拟例如:
对于v-if和v-show都可以控制元素的显隐,但是因为两者控制显隐方式的不同,所以试用的场合还是不同的。
一、v-if 控制显隐方式
v-if 是惰性的,如果初始渲染的条件为假,那么什么事情都不做,在第一次变为真的时候才开始局部渲染。这就导致当条件为假的时候在条件块里面的子组件不会被渲染,而且时间监听器也不会生效。当条件切换时会有销毁、重建的过程,所以说,v-if才是真正的条件渲染
二、v-show控制显隐方式
v-show其实是通过控制节点css属性中的display:none与否来控制是否显示。所以v-show无论条件真假都会进行编译并且保留编译,只是简单基于css切换
总结:
1、根据对比可知,v-if有更高的切换消耗,v-show有更高的初始渲染消耗。因此,如果需要频繁切换就采用v-show,如果运行条件不太可能改变,就采用v-if
2、v-if与v-else搭配,v-show也可以使用取反来模拟例如:
<span v-show = "show">I am v-show</span> <span v-show = "!show">I am else</span>
相关文章推荐
- Vue.js 条件渲染 v-if、v-show、v-else
- Vue.js使用v-show和v-if的注意事项
- Vue.js 中 v-if 和 v-show 有什么区别?(转)
- Vue.js常用指令汇总(v-if//v-show//v-else//v-for//v-bind//v-on等)
- vue.js之v-show 与 v-if
- Vue.js 中 v-if 和 v-show 的区别
- 深入理解vue.js中的v-if和v-show
- Vue.js 中 v-if 和 v-show 的区别
- Vue.js 中 v-if 和 v-show 有什么区别?
- Vue.js中v-show和v-if使用时的注意事项
- vue中 v-if 和v-show的问题
- Vue.js之v-if
- 前端人员必知的Vue.js条件v-if与列表循环v-for相关用法
- vue.js 中的在v-for节点中嵌入 v-if 的解释
- vue中的tab切换(v-show,v-if)
- vue.js 嵌套循环、if判断、动态删除
- AngularJs ng-show 和 ng-if的区别
- vue中v-show与v-if的区别
- Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
- VUE基本指令(v-model,v-html,v-text,v-bind,v-if,v-show,v-for,v-on:click,组件,过滤器)