我正在为Vue-Router的问题而苦苦挣扎。我需要检查一个简单的条件,即
If no matching route is found. Do window.location.reload()
我正在使用vue-router:2.7.0,vue为2.4.2
我已经浏览了庞大的博客文章,但是没有找到直接答案的地方。
我将投入代码,然后解释。
const router = new VueRouter({
mode: 'history',
routes,
});
router.beforeEach((to, from, next) => {
if (to.matched.length === 0) {
window.location.reload();
}
next();
});
router.beforeach在装有三个参数的路由之前被调用。to, from and next
。接下来是回调功能。
这里的关键是to
参数中的匹配属性。它包含一系列匹配的路线。如果发现不匹配的路线,则to.matched
数组的长度变为0,这是我用来做出决定的属性。
vue-router
中应该有一种原本的属性。但这是一场斗争,我将在另一天战斗。