码迷,mamicode.com
首页 > 其他好文 > 详细

Vue路由及路由守卫

时间:2019-01-29 00:32:37      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:com   mod   rect   注意   组件   before   钩子   pre   pat   

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路由及路由守卫

标签:com   mod   rect   注意   组件   before   钩子   pre   pat   

原文地址:https://www.cnblogs.com/Xmforever/p/10332227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!