全局路由守卫让router.push失效怎么办
时间: 2023-07-07 08:35:13 浏览: 209
vue两组件间值传递 $router.push实现方法
如果在全局路由守卫中使用了 `next(false)`,那么 `router.push` 将会失效。这是因为 `next(false)` 取消了导航,因此 `router.push` 无法进行导航。
如果你确实需要在全局路由守卫中取消导航,但仍然需要在某些情况下使用 `router.push` 进行导航,可以考虑在 `router.push` 之前,先使用 `router.beforeEach` 进行判断,避免全局路由守卫中使用 `next(false)`。
示例如下:
```javascript
router.beforeEach((to, from, next) => {
if (/* 某些条件下需要取消导航 */) {
next(false);
} else {
next();
}
});
// 在需要导航的地方,先进行判断
if (/* 某些条件下需要导航 */) {
router.push('/path');
}
```
阅读全文