博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
v-if 与 v-show的区别及对生命周期的影响
阅读量:4129 次
发布时间:2019-05-25

本文共 840 字,大约阅读时间需要 2 分钟。

两者的区别

(1) v-if 的原理是根据判断条件来动态的进行增删DOM元素,只有v-if的值为true时,元素才会存在于html页面中;

     v-show是根据判断条件来动态的进行显示和隐藏元素,是通过修改DOM元素的display属性来实现的,无论v-show的值为true或者false,元素都会存在于html页面中。

(2) 只有v-if能和v-else连用进行分支判断,v-show是不能和v-else连用的,如果出现多种条件场景的情况下,可以使用v-if来进行判断

(3) 如果需要非常频繁地切换,使用v-show比较好,如果在运行时条件不会改变时,用v-if比较好

应用场景:频繁的进行增删DOM操作会影响页面加载速度和性能,由此:

  • 项目程序不是很大的时候,v-if和v-show都可以用来进行判断展示和隐藏(这种场景使用v-if只是影响不大,并不是没有影响);
  • 当项目程序比较大的时候,不推荐使用v-if来进行判断展示和隐藏,推荐使用v-show;    

 

对生命周期的影响

v-if - 初始渲染:

初始值为 false 组件不会渲染,生命周期钩子不会执行,v-if 的渲染是惰性的。

初始值为 true 时,组件会进行渲染,并依次执行 beforeCreate,created,beforeMount,mounted 钩子。

v-if - 切换:

false => true:依次执行 beforeCreate, created, beforeMount, mounted 钩子。

true => false:依次执行 beforeDestroy, destroyed 钩子。

v-show - 渲染:

无论初始状态,组件都会渲染,依次执行 beforeCreate, created, beforeMount, mounted 钩子,v-show 的渲染是非惰性的。

v-show - 切换:

对生命周期钩子无影响,切换时组件始终保持在 mounted 钩子。

转载地址:http://ciuvi.baihongyu.com/

你可能感兴趣的文章
Linux子系统系列-I2C
查看>>
<iOS>关于自定义description的一点用法
查看>>
Unix 命令,常用到的
查看>>
DLL中建立进程共享数据段需要注意的语法问题
查看>>
服务器端技术----Http请求的处理过程
查看>>
C语言-预处理指令2-条件编译
查看>>
C语言-预处理指令3-文件包含
查看>>
C语言-变量类型
查看>>
C语言-static和extern关键字1-对函数的作用
查看>>
C 语言-static和extern关键字2-对变量的作用
查看>>
【JavaScript 教程】浏览器—History 对象
查看>>
还不会正则表达式?看这篇!
查看>>
100道+ JavaScript 面试题,助你查漏补缺
查看>>
JavaScript深入理解之闭包
查看>>
这才是学习Vite2的正确姿势!
查看>>
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
25个构建Web项目的HTML建议,你需要了解一下!
查看>>
【web素材】02-10款大气的购物商城网站模板
查看>>
6种方式实现JavaScript数组扁平化(flat)方法的总结
查看>>
如何实现a===1 && a===2 && a===3返回true?
查看>>