如果在vue-router中找不到匹配的路由,则强制重新加载

时间:2017-09-10 15:42:26

标签: vuejs2 vue-router

我正在努力解决vue-router的问题。 我需要检查一个简单的条件,即

If no matching route is found. Do window.location.reload()

我使用的是vue-router:2.7.0,vue是2.4.2

我已经浏览了大量博客文章,但没有找到直接答案。

1 个答案:

答案 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中应该有其他类型的属性。但这是一场我将要再战斗的战斗。