当使用 Vue.js 的 <keep-alive>
组件包裹动态组件时,会触发组件的 activated
和 deactivated
生命周期钩子函数。
-
activated:当组件被激活时调用,即从缓存中恢复组件状态并重新渲染。在
activated
钩子中可以执行一些逻辑,比如获取数据、更新状态等。 -
deactivated:当组件被停用时调用,即将组件从内存中移除并销毁。在
deactivated
钩子中可以进行一些清理工作,如取消定时器、清除事件监听器等。
需要注意的是,activated
和 deactivated
钩子仅在组件被缓存时才会触发,如果组件没有被缓存,则这两个钩子不会被调用。
下面是一个示例代码,展示了如何在 activated
和 deactivated
钩子中执行相应的逻辑:
new Vue({
el: '#app',
data: {
// ...
},
activated() {
// 组件被激活时的逻辑
console.log('Component activated');
// 可以在这里进行数据请求、状态更新等操作
},
deactivated() {
// 组件被停用时的逻辑
console.log('Component deactivated');
// 可以在这里进行清理工作,如取消定时器、清除事件监听器等
}
});
通过在 activated
和 deactivated
钩子中添加适当的逻辑,可以实现对缓存组件的管理和控制,提高应用的性能和用户体验。