keep-alive用法及注解

keep-alive是Vue的一个内置组件,用于缓存组件状态,避免重复渲染DOM,提高性能。可以通过include/exclude属性或路由meta信息控制组件是否被缓存。缓存的组件会有activated和deactivated生命周期钩子替代原有的创建和销毁生命周期。
摘要由CSDN通过智能技术生成

一、为什么要用keep-alive

keep-alive是vue的内置组件,用它包裹动态组件后,组件之间切换不会销毁组件,而是将组件状态缓存在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性。

例:用户填写表单后跳转至其他路由组件,再返回表单路由组件时,表单不会重置

二、怎么用keep-alive

方法1:在App.vue中,keep-alive 结合include/exclude 属性缓存组件

//include值为字符串或者正则表达式,匹配的组件会被缓存;
//exclude值为字符串或正则表达式,匹配的组件不会被缓存;

// 缓存所有组件
<keep-alive>
   <router-view />
</keep-alive>

// include 只缓存组件名字为keep的组件,其他组件不会缓存
<keep-alive include="keep">
   <router-view />
</keep-alive>

// exclude不缓存组件名字为keep的组件,其他组件都会缓存
<keep-alive exclude="keep">
   <router-view />
</keep-alive>

方法2:在Route中,keep-alive结合路由中meta属性来控制组件缓存


{
      path: '/keep',
      name: 'keep',
      meta:{
        keepAlive: true  // 需要缓存
      },
      component: keep
}

三、keep-alive的生命周期

使用keep-alive缓存组件后,组件的部分生命周期不会被触发,所以就有了

activated与deactivated生命周期函数

activated:进入组件时调用,在渲染阶段不会被调用
deactivated:离开组件时调用,在渲染阶段不会被调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值