vue的v-if,v-show,动态组件,keep-alive

文章探讨了Vue中v-if和v-show指令的差异,指出v-if在条件不成立时不会渲染DOM,适合不频繁切换的情况,而v-show则始终渲染元素但只改变显示状态。同时,不建议v-if与v-for一起使用以避免性能问题。对于频繁切换组件,推荐使用动态组件配合keep-alive来缓存组件状态,并利用activated和deactivated生命周期钩子处理数据。
摘要由CSDN通过智能技术生成

v-if

如果条件不成立,不会渲染当前指令所在节点的dom元素,如果需要频繁切换显示隐藏的元素,使用v-if则会出现频繁新增删除节点,在性能上代价比较高

注意:最好不要v-for和v-if同时使用,v-for会比v-if的优先级高,如果连用会把v-if添加到每个元素,会造成性能问题

v-show

无论条件是否成立,dom元素都会被渲染,只是切换当前元素的显示和隐藏,只在初始的时候渲染代价比较高

当需要切换显示组件的时候,我们通常会使用v-if,v-show
使用v-if的时候会导致组件重新挂载,频繁切换的代价过高,而v-show不会让组件重新挂载,但是这样如果需要刷新数据的时候就不太方便,在vue中我们推荐使用动态组件component结合keep-alive,可以友好地缓存组件也可以使用activated、deactivated等生命周期进行数据处理

<keep-alive :include="componentName">
	<component :is="componentName"></component>
</keep-alive>	
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值