美文网首页
vue的路由和路由守卫

vue的路由和路由守卫

作者: 好名字都让你们用了 | 来源:发表于2019-08-28 17:03 被阅读0次

router 和 路由守卫

路由配置

  1. 分模块配置
  2. 404 配置
  3. 懒加载
  4. active-class

路由守卫(跟 axios 拦截器有异曲同工之妙)

  1. to 即将要进入的目标 路由对象

  2. from 当前导航正要离开的路由

  3. next 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。

    • next() 直接进入进行管道中的下一个钩子
    • next({ path: '/xxx' }) 跳转到/xxx 路由

应用

  1. 动态的给每个页面添加 title
  2. 在某些路由页面,比如我的订单,购物车等需要登录的页面,判断是否登录,若没登录就跳到登录页面,
import Vue from "vue";
import Router from "vue-router";
import store from '../store/index';

Vue.use(Router);

const router = new Router({
  routes: [{
      path: "/",
      redirect: "/index"
    },
    {
      path: "/order",
      meta: {
        title: '我的订单',
        needLogin: true
      },
      component: () => import("@/views/order/index")
    },
    {
      path: "/cart",
      meta: {
        title: '购物车',
        needLogin: true
      },
      component: () => import("@/views/cart/index")
    },
    {
      path: '/login',
      component: () => import('@/views/login/index'),
      meta: {
        title: '登陆'
      }
    },
    {
      path: '/index',
      component: () => import('@/views/index/index'),
      meta: {
        title: '首页'
      }
    },
    {
      path: "/my",
      component: () => import("@/views/my"),
      redirect: '/my/center',
      children: [{
        path: 'center',
        meta: {
          title: '个人中心',
        },
        component: () => import('@/views/my/center')
      }, {
        path: 'set',
        meta: {
          title: '设置',
        },
        component: () => import('@/views/my/set')
      }]
    },
    {
     // 404配置
     path: '*',
   component: () => import('@/views/notFound')
    }
  ]
});


router.beforeEach((to, from, next) => {
  let {
    title,
    needLogin
  } = to.meta;
  // 从vuex获取登录状态
  let isLogin = store.state.isLogin;
  document.title = title;

  if (needLogin && !isLogin) {
    next({
      path: '/login'
    })
  } else {
    next();
  }
})

export default router;

相关文章

  • vue 路由导航白话全解析

    这里先放上官网的教程和说明:点击这里,vue导航守卫官方文档 路由守卫 路由守卫说白了就是路由拦截,在地址栏跳转之...

  • 华云

    一,vue路由守卫的生命周期1,全局的前置路由守卫 router.beforeEach()2, 全局解析守卫 ...

  • Vue-Router 导航守卫

    导航守卫 导航表示路由正在发生改变。(变化的路由)导航守卫就是变化的路由钩子。路由钩子的意思可以理解为vue-ro...

  • react实现路由守卫

    与vue不同,vue直接使用beforeEach即可实现全局路由守卫等功能。react要实现路由守卫得自己配置。实...

  • Vue导航守卫

    Vue导航守卫 理解 导航守卫也叫路由守卫,可以实时的监控路由的跳转过程,在路由的跳转的各个过程执行相应的操作,有...

  • vue的路由和路由守卫

    router 和 路由守卫 路由配置 分模块配置 404 配置 懒加载 active-class 路由守卫(跟 a...

  • vue-router 常见导航守卫

    全局守卫vue-router全局有三个守卫 路由独享守卫如果你不想全局配置守卫的话,你可以为某些路由单独配置守卫 ...

  • 关于vue路由守卫做登陆状态判断的问题

    关于vue路由守卫做登陆状态判断的问题 直接上代码 // 全局路由守卫 router.beforeEach((to...

  • Vue路由/路由守卫

    一、前端路由和后端路由概念解释 二、路由的基本使用方式 三、常见引入路由组件的方式和区别 四、常见引入路由分类1....

  • vue的路由守卫

    路由守卫分3种:全局守卫路由独享守卫组件内的路由守卫 1.全局守卫:beforeEachbeforeResolve...

网友评论

      本文标题:vue的路由和路由守卫

      本文链接:https://www.haomeiwen.com/subject/ukdmectx.html