Vue Router 笔记(Vue2)

Vue Router 笔记(Vue2)

vue-router 全局有三个守卫 • router.beforeEach:全局前置守卫,进入路由之前 • router.beforeResolve:全局解析守卫,在 beforeRouteEnter 调用之后调用 • router.afterEach:全局后置钩子,进入路由之后

全局路由守卫

import Vue from 'vue'
import Router from 'vue-router'
import route from './router'
Vue.use(Router)
const router = new Router({
  routes: route // 路由列表
})
// 模拟用户登录与否
const HAS_LOGIN = true
// 全局前置守卫
// 在Router实例上进行守卫
router.beforeEach((to, from, next) => {
  // to和from都是路由实例
  // to:即将跳转到的路由
  // from:现在的要离开的路由
  // next:函数
  // 如果未登录,就跳到登录页,如果登录了,选择哪个页面跳到哪个页面;如果登录了还去了login页面,就跳到首页。
  if (to.name !== 'login') {
    if (HAS_LOGIN) next()
    else next({ name: 'login' })
  } else {
    if (HAS_LOGIN) next({ name: 'home' })
    else next()
  }
})
// 全局解析守卫
router.beforeResolve((to, from, next) => {})
// 全局后置钩子
router.afterEach((to, from) => {})
export default router

我睡着的时候不困唉大约 3 分钟前端框架基础语法vueVueRouter路由守卫