找到错误原因代码
router.beforeResolve((to, from, next) => {
const matched = router.getMatchedComponents(to);
const prevMatched = router.getMatchedComponents(from);
// 我们只关心非预渲染的组件
// 所以我们对比它们,找出两个匹配列表的差异组件
let diffed = false;
// return next();
const activated = matched.filter((c, i) => {
return diffed || (diffed = (prevMatched[i] !== c))
});
if (!activated.length) {
return next()
}
});
是在入口js忘记写了else情况下的next逻辑,导致的问题。
因为我是ssr的页面,我一直以为是ssr的问题,所以在网上搜ssr的关键词,根本搜不到。
搜不到就很有可能是自己代码导致的问题,肯定是哪里调用的不对。
所以还是从头开始梳理逻辑,从入口js处,一步一步的查,看看自己的路由哪一步是有问题的。
每一步仔细看
promise的三种状态padding,resolve,reject三种状态,打印了router发现是pending状态,也就是说明她没有调用next方法。