• Vue 前置 后置 路由守卫 独享 路由权限控制 自定义属性


    import Vue from 'vue'
    import VueRouter from 'vue-router'
    //导入路由器
    Vue.use(VueRouter)
    
    import Login from '../components/Login'
    import User from '../components/User'
    //导入需要路由的组件
    
    
    const router = new VueRouter({
        //暴露出去使用
        routes:
            [
                {
                    path: '/login',
                    component: Login
                },
                {
                    name: 'user',
                    path: '/user',
                    component: User,
    
                }
            ]
    
    })
    
    
    //全部组件进入路由之前
    router.beforeEach((to, from, next) => {
    
    next()
    //放行 这样写表示全部放行 
    //这里可以做判断,符合条件放行
    
    })
    
    export default router
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    to:到哪去
    from:从哪里来
    next:是否放行

    用户登录规则

    if(to.path=='/user')//判断路径是否为用户中心
    {
    
    if(token....)//判断是否登录
    {
    next()
    }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    路由器自定义属性meta

    meta属性可以自定义属性,如果网站标题,一些自定义的数据

      {
                    path: '/login',
                    component: Login,
                    meta: { title: '用户登录', isToken: true }
      },
    
    //全部组件进入路由之前
    router.beforeEach((to, from, next) => {
    
        document.title = to.meta.title
        next()
    
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    路由的生命周期 前置 后置

    //全部组件进入路由之前
    router.beforeEach((to, from, next) => {
    
        next()
    
    //在这里一般做权限校验
    })
    
    
    //路由进入之后
    router.afterEach((to,from)=>{
    
    //校验完毕 要做的事情 比较少用
    
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    独享路由守卫

    也就是一个路由限制,如果个人中心,其他页面随便看,只有个人中心要校验权限,这个就可以使用独享路由守卫

     {
     //独享前置路由守卫
                    name: 'user',
                    path: '/user',
                    component: User,
                    meta: { title: '个人中心' },
                    beforeEnter: (to, from, next) => {
                    
                        document.title = to.meta.title
                        next()                
                    }
    
                }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    独享路由守卫没有 后置守卫 ,但可以配置成全局的后置路由守卫

    //路由进入之后
    router.afterEach((to,from)=>{
    
    //校验完毕 要做的事情 比较少用
    
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    组件路由守卫

    组价路由器守卫,没有前置 和 后置 这个概念

    路由配置

     {
                    name: 'user',
                    path: '/user',
                    component: User,
                    meta: { title: '个人中心' },      
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    User组件

    
    <script>
    
        export default {
            name: 'User',
    
            //通过路由规则进入组件时被调用
            beforeEnter: (to, from, next) => {
                // ...
            },
            //通过路由规则离开组件时被调用  路由被切换走之前
            beforeRouteLeave(to, from, next) {
                // ...
            }
        }
    
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    Matlab图像处理-
    mybatis数据批量更新
    企业DevOps之路:Jenkins 流水线
    操作系统OS/进程与线程/线程
    基于ssm人事管理系统获取(java毕业设计)
    蓝桥杯嵌入式STM32G431RBT6知识点(主观题部分)
    Go Web——RESTful风格编程
    Matlab之多平台雷达检测融合仿真(附源码)
    PHP中文转拼音实现
    vue3(element-plus)+springboot
  • 原文地址:https://blog.csdn.net/dpc5201314/article/details/134484188