【Vue姿势】v-if和v-show、$nextTick

v-if和v-show

实现本质方法区别

v-show本质就是标签display设置为none,控制隐藏

v-if是动态的向DOM树内添加或者删除DOM元素

编译的区别

v-show其实就是在控制css

v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件

编译的条件

v-show都会编译,初始值为false,只是将display设为none,但它也编译了

v-if初始值为false,就不会编译了

性能

v-show只编译一次,后面其实就是控制css,而v-if不停的销毁和创建,故v-show性能更好一点。

用法

v-if更灵活,例如
【Vue姿势】v-if和v-show、$nextTick_第1张图片

https://baijiahao.baidu.com/s?id=1674890362392472517&wfr=spider&for=pc

$nextTick

vue中执行DOM的更新是异步的,不是同步的。vue观察到data的变化,会把这个更新DOM这个事件缓存在一个循环模型里面,是为了避免不必要的多次计算和DOM的操作,比如重复点击。如果想在数据更新之后立即获取DOM结点,或者其他的事情,就可以使用this.$nextTick方法。

【Vue姿势】v-if和v-show、$nextTick_第2张图片【Vue姿势】v-if和v-show、$nextTick_第3张图片

【Vue姿势】v-if和v-show、$nextTick_第4张图片

你可能感兴趣的:(Vue知识,vue.js,前端,javascript)