1、使用了<keep-alive></keep-alive>
被包含在<keep-alive>中的组件,会多出两个生命周期钩子函数。
-
//被激活时执行=>onActivated()
-
//比如从 A 组件,切换到 B 组件,A 组件消失时执行=>
onDeactivated()
2、这时三级菜单就会多次onMounted,
onDeactivated
解决办法:
在三级里面嵌套
vue里面导入 onActivated
const isTrigger = ref(true);
onActivated(()=>{
if(isTrigger){
ajax请求方法(这时候只加载一次)
}
});
// 如果不执行onDezctivated 跳转别的页面还回执行一次上个页面的ajax请求
onDeactivated(()=>{
isTrigger.value=false;
});

本文探讨了在Vue中使用<keep-alive>组件导致的三级菜单多次onMounted和onDeactivated问题。通过引入onActivated和onDeactivated生命周期钩子,结合ref动态变量isTrigger,可以避免重复的Ajax请求,实现组件的正确缓存和状态管理。这种方法确保了页面切换时只加载一次数据,提高了应用性能。
&spm=1001.2101.3001.5002&articleId=118147347&d=1&t=3&u=7f79d981f0ed4eb088d79f48101a5080)
1万+

被折叠的 条评论
为什么被折叠?



