vue使用keep-alive后组件生命周期的变化

我们指定 keep-alive可以缓存组件 有些我们需要保存用户操作的组件 就需要用keep-alive套起来
之后再次用到他就可以直接在缓存中取

但被套了 keep-alive的组件生命周期也会发生一些变化

我们来给一个用了 keep-alive的组件套入生命周期
beforeCreate 组件开始初始化时执行的生命周期
created 组件数据 生命周期 函数 初始化完成时执行的生命周期
beforeMount 组件dom树开始挂载时触发的生命周期
mounted dom树挂载完成时执行的生命周期
beforeDestroy 组件即将销毁时触发的生命周期
Destroyed 组件销毁时触发的生命周期
activated keep-alive组件初始化完成时执行的生命周期
deactivated keep-alive组件销毁 记入缓存时执行的生命周期
在这里插入图片描述
第一次运行 我们可以看到 依次执行了 beforeCreate created beforeMount mounted activated

activated在mounted后执行 说明 mounted执行时 组件已经完全加载好了 所以 mounted中不用考虑什么元素拿不到之类的问题

然后我们点击关闭时 是用 v-if销毁了组件 大家知道 v-if 条件不成立时 组件会被直接从dom中移除
在这里插入图片描述
但在图中 却值只执行了 deactivated
beforeDestroy 和 Destroyed显然没有触发
因为keep-alive组件 并不会被销毁 只是被记录在缓存里了 所以 keep-alive组件销毁时只会触发deactivated

当我们再次让v-if的条件成立 组件重新出现
在这里插入图片描述
会发现只执行了 activated
因为 之前这个组件已经被缓存了 不需要再初始化了 所以 就只有 activated被执行了 组件的生命周期 和数据 以及方法 都是从缓存中取出的 并没有初始化

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值