vue|对keep-alive的初步理解🏆🏆

144 阅读1分钟

1、 keep-alive组件

缓存组件的状态,避免重新渲染

2、两个生命周期函数

activated:在keep-active组件激活的时候调用

deactivated:在keep-active组件停用时调用

首次进入组件时:beforeRouteEnter > beforeCreate > created > mounted > activated > ... ... > beforeRouteLeave > deactivated

再次进入组件时:beforeRouteEnter > activated > ... ... > beforeRouteLeave > deactivated

应用场景

缓存所有页面,在app页面中,用keep-active包裹router-view

根据条件缓存页面,在app页面中,使用include和exclude

缓存部分界面,在router的index.js 中,配置meta的keepActive

3、实际案例

主要理解商品列表和商品详情页,当用户选择商品时,可能会频繁的点击商品列表和商品详情页,从商品详情页返回商品列表时,当然是希望页面保持在刚才选择的位置,所以可以使用keep-alive包裹这商品列表页面,缓存当前选择的状态

4、实际模拟

未使用

image (9).png

此处没有使用keep-alive缓存状态,那么在切换前后,组件都会被重新的创建和销毁,所以呈现的都是全新的页面切换前,我选择的是三弟,切换后,进入组件2,再次切换,界面重新创建,初始值是大弟

image (10).png

使用

image (11).png

使用keep-alive之后会缓存组件的状态,实际上缓存的就是vue实例; 切换前选择二弟,切换进入组件2,再次切换之前的组件,还是二弟,达到了缓存数据的目的

image (12).png

参考👀

segmentfault.com/a/119000003…

blog.csdn.net/m0_57349005…