vue指令中v-show和v-if以及keep-alive的区别

v-if:

  • 属于条件显示,满足条件就显示元素,不满足就删除元素,通过操作DOM元素完成。
  • v-if的首次渲染显示的开销较小,因为它只渲染满足条件的那一个元素,切换组件时;其开销较大,因为它每切换以此就要重新触发生命周期渲染显示新元素
  • v-if值为false时,会将该元素节点从DOM树中删除,也就是会删除它的依赖、事件监听等。

v-show:

  • 原理是通过控制元素的display属性来决定是否显示元素,属于响应式的。
  • 首次渲染的开销较大,因为它会将所有页面全部渲染好之后,在由display属性来决定显示谁。切换开销较小,因为已经全部全然完成,只需要改变display属性便可以显示。

keep-alive:

  • 用于缓存活动组件,一开始并不会渲染全部组件,而是会渲染需要显示的组件,当切换组件时,会把之前已经渲染的组件缓存,每一次切换都会缓存该组件。
  • 属于按需渲染实现,所以它的切换开销和首次渲染开销都较小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值