争对部分页面打开新页面(同一个路由可能打开,可能不打开,根据业务不同,逻辑不同),我们当然不想每个路由跳转都去添加复杂的东西,就想着统一在路由拦截的时候做处理
1.在路由跳转前拦截,vue路由是router.beforeEach这个方法
2.写逻辑咯
if (to.query.openNewPage== 'true' || to.query.openNewPage== true) {
let tmpQuery = to.query;
tmpQuery.openNewPage= false;//设置为false,防止不停新开页面
let routeUrl = router.resolve({
path: to.path,
query: tmpQuery
});
window.open(routeUrl.href, "_blank");
} else {//不开新页面,就继续执行
next()
}
3.在跳转的页面添加openNewPage这个参数,设置成true
注意:这里判断true和“true”的原因是发现本地跟打包后两个判断的true类型不一样