# 问题描述:
页面菜单都是通过接口动态加载,component采用懒加载方式引入,首次进入页面加载很快,但是点击菜单切换页面时,会卡顿3~5秒钟。
# 问题原因
### 原因1:
标签栏导航中使用watch监听整个useRouter()引发浏览器页面卡死。屏蔽掉发现问题解决!
### 主要原因:
标签页导航数据存储到store中,
期初设计的时候, tabs 每项标签页数据存储route信息,就是这一句导致切页卡顿
route: _.cloneDeep(route)
```
/** 切换标签页 */
const switchTab = (route: RouteLocationNormalizedLoaded) => {
state.activeKey = route.fullPath;
const index = state.tabs.findIndex((tab) => tab.path === route.fullPath);
if (index === -1)
state.tabs.push({
path: route.fullPath,
title: route.meta?.title as string,
route: _.cloneDeep(route), // 导致切页卡顿原因!!
});
};
```
Vue3 + vite2 切换路由卡顿问题