美文网首页
vue router.beforeEach()和router.a

vue router.beforeEach()和router.a

作者: Mracale | 来源:发表于2020-09-12 18:18 被阅读0次

outer.beforeEach()一般用来做一些进入页面的限制。比如没有登录,就不能进入某些页面,只有登录了之后才有权限查看某些页面。。。说白了就是路由拦截。

第一步 规定进入路由需不需要权限

@/router/index.js
import A from '@/components/a'
{
     path: '/a',
     name: 'a',
     component: A,
     meta : {                      //加一个自定义obj
            requireAuth:true      //这个参数 true 代表需要登录才能进入A
     }
},

第二步 使用vuex整一个userId或者token

@/assets/store.js
//使用vuex三步走
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
//这个理论来说
const store = new Vuex.Store({
    state:{
        userId : ''
    }
})

export default store

第三步 使用router.beforeEach()

@/main.js
思路:【
    如果(即将进入的这个路由需要权限才能进入){
    
        如果(能获取到这个老哥的userID){
            就让这个老哥进入这个路由
        }否则{
            就让这个老哥进入b这个页面
        }
        
    } 即将进入的路由不需要权限就能进入 {
    
        就让这个老哥进入这个路由
        
    }
】
对应代码:
import store from '@/assets/store'   //把这个userId获取过来
router.beforeEach((to,from,next)=>{
    if(to.meta.requireAuth){
        if(store.state.userId){
            next()
        }else{
            next({path:'/b'})
        }
    }else{
        next()
    }
})

第四步

第三步这个/b路由其实就是登陆页面,
当进入A页面之前,需要请求接口,获取一下是否有登陆过,然后把这个userId存在vuex的state里。
当没有userId或者token时,则在登陆之后,存一个userId或者token到state里。

相关文章

  • vue router.beforeEach()和router.a

    outer.beforeEach()一般用来做一些进入页面的限制。比如没有登录,就不能进入某些页面,只有登录了之后...

  • Vue设置路由拦截

    路由守卫 在Vue中分为全局前置守卫 router.beforeEach ,和全局后置钩子 router.afte...

  • 2018-12-17

    vue 登陆验证 在main.js中验证 ``` router.beforeEach((to, from, nex...

  • vue router和vue属性

    vue router 安装 全局前置守卫 router.beforeEach 每个守卫方法接收三个参数: to: ...

  • vue router.beforeEach

    要写在main.js 中new Vue({}) 之前,否则初始化没效果

  • VUE2.0 —— 导航钩子函数

    模块一:全局导航钩子函数 1、vue router.beforeEach(全局前置守卫) beforeEach的钩...

  • vue之路由钩子函数-路由守卫

    模块一:全局导航钩子函数 1、vue router.beforeEach(全局前置守卫) beforeEach的钩...

  • vue-router

    vue-router 有哪些钩子函数? 全局前置守卫 router.beforeEach 全局解析守卫 route...

  • vue + js 实现微信授权登录

    描述点 微信相关开发知识了解 微信网页授权 vue router.beforeEach vuex 授权详解 页面...

  • 华云

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

网友评论

      本文标题:vue router.beforeEach()和router.a

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