在vue中设置多个重定向路由路径

时间:2017-04-22 06:05:17

标签: html vue.js vuejs2

const router = new VueRouter({
routes: [
      {path: '*', redirect: '/'}
      }
)}

我在routes.js文件中将其设置为重定向路由。 我如何设置多个重定向路径并在特定条件下调用它

1 个答案:

答案 0 :(得分:0)

在您要根据条件设置多个重定向的组件中,您可以在该组件中使用beforeRouteEnter()属性,如下所示:

beforeRouteEnter(to,from,next){
    next(vm => {
        if(condition 1){
            vm.$router.push('the path you want to redirect');
        }else if(condition 2){
            vm.$router.push('the path you want to redirect');
        }else{
            //no redirect
            next();
        }
    });
} 

由于在调用beforeRouteEnter()属性时尚未创建vue实例,因此无法使用this访问vue实例,并通过vm

另一种方法是使用route meta feilds,在定义路径和检查全局导航防护中的元字段时,您将包含元字段。在该全局导航防护中,您可以通过检查各种if语句来重定向。