我正在努力解决vue-router的问题。 我需要检查一个简单的条件,即
If no matching route is found. Do window.location.reload()
我使用的是vue-router:2.7.0,vue是2.4.2
我已经浏览了大量博客文章,但没有找到直接答案。
答案 0 :(得分:0)
我会抛出代码然后解释。
const router = new VueRouter({
mode: 'history',
routes,
});
router.beforeEach((to, from, next) => {
if (to.matched.length === 0) {
window.location.reload();
}
next();
});
在使用三个参数加载路由之前调用router.beforeEach。 to, from and next
。接下来是回调函数
这里的关键是to
参数中的匹配属性。它包含一系列匹配的路由。如果找不到匹配的路由,则to.matched
数组的长度变为0,这是我用来做出决定的属性。
vue-router
中应该有其他类型的属性。但这是一场我将要再战斗的战斗。