zoukankan      html  css  js  c++  java
  • 【vue】 router.beforeEach

    import store from '@/store'
    const Vue = require('vue')
    const Router = require('vue-router')
    Vue.use(Router)
    
    const router = new Router({
      scrollBehavior (to, from, savedPosition) {
        return {x: 0, y: 0}
      },
      linkActiveClass: 'is-active',
      mode: 'history',
      routes: [
        {
          path: '/',
          name: 'index',
          component: resolve => require([`@/views/index.vue`], resolve)
        },
        {
          path: '/process',
          name: 'process',
          meta: {
            role: 1,
            crumbName: ['管理中心'],
            crumbPath: []
          },
          component: resolve => require([`@/views/process.vue`], resolve)
        },
        {
          path: '*',
          redirect: '/'
        }
      ]
    })
    router.beforeEach(async (to, from, next) => {
      let loginUserName = store.getters.loginUserName
      let loginUserRole = store.getters.loginUserRole
      let goNext = (to, from, next, loginUserRole) => {
        if (to.meta.role !== undefined && loginUserRole < to.meta.role) {
          ...(想要做的操作)
          next()
        } else {
          next()
        }
      }
      try {
        if (!loginUserName) { // 先判断是否已登录
          await store.dispatch('getUserInfo')
          // await store.dispatch('getUserRole')
          let loginUserName = store.getters.loginUserName
          let loginUserRole = store.getters.loginUserRole
          if (loginUserName) {
            goNext(to, from, next, loginUserRole)
          }
        } else {
          goNext(to, from, next, loginUserRole)
        }
      } catch (err) {}
    })
    
    export default router
     
    

      

  • 相关阅读:
    h5 与原生 app 交互的原理
    软件公司各种角色透视图
    软件公司各种角色透视图
    软件公司各种角色透视图
    3大原则让你的编程之路越走越顺
    LeetCode[39]: 组合总和
    20190826
    Oracle介绍
    Welcome to Giyber Blog
    清醒
  • 原文地址:https://www.cnblogs.com/ximiximi-blog/p/11694689.html
Copyright © 2011-2022 走看看