Vue路由及路由守卫

Posted xmforever

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue路由及路由守卫相关的知识,希望对你有一定的参考价值。

1. Vue路由的添加

vue cli3添加vue-router通过命令vue  add  router  

export default new Router({
    mode: ‘history‘,
    routes: [
        {
            path: ‘/‘,
            component: Main
        },
        {
            path: ‘/login‘,
            component: Login
        }
    ]
})

// app.vue
<div id="app">
    <router-view></router-view>
</div>

// main.vue
<div>
    <router-link to="/"></router-link>
    <router-link to="/login"></router-link>
</div>

 

2. 路由的重定向

export default new Router({
    mode: ‘history‘,
    routes: [
        {path: ‘/‘, redirect: ‘/main‘}
        // 当只有8080和8080/ 的时候,调到主页
    ]
})

3. 定义子路由

export default new Router({
    routes: [
        {
            path: ‘/‘,
            component: Main
        },
        {
            path: ‘/login‘,
            component: Login
        },
        {
            path: ‘/admin‘,
            component: Admin,
            children: [
                {path: ‘buttons‘, component: Buttons },  // 注意需要使用相对地址
                {path: ‘Tables‘, component Tables } 
            ]
        }
    ]
})

// 父级路由存在<router-view></router-view>

4.  路由守卫

  • 全局beforeRouter
  • 路由beforeEnter
  • 组件beforeRouteEnter
const router = new Router({});

router.beforeEach((to, from, next) => {
  //to 前往的路由, from 来的路由, next 下一步钩子函数,没有问题,必须执行next()  
  console.log(to);
  if (to.path !== ‘/login‘) {
      if (window.isLogin) {
          next()
      } else {
          next(‘/login?redirect=‘+ to.path)
      }
  } else {
      next()
  }
})

export default router

  

 

 

 

  

 

以上是关于Vue路由及路由守卫的主要内容,如果未能解决你的问题,请参考以下文章

Vue配置路由和传参方式及路由守卫!

vue路由导航守卫及前置后置钩子函数参数详解

vue中使用router全局守卫实现页面拦截及安全问题的一点感想

vue路由守卫

18、 vue-router导航解析及钩子函数

vue的路由守卫都有哪些?