vue-element-admin中动态路由404页面的问题。

注意:需要在请求 路由接口之后,把跳转404的页面拼接到路由数组后

// router/index.js
export const constantRoutes = [
  {
    path: '/login',
    component: () => import('@/views/login/index'),
    hidden: true
  },

  {
    path: '/404',
    component: () => import('@/views/404'),
    hidden: true
  },
]

// 404 page must be placed at the end !!!
export const otherRoutes = [{ path: '*', redirect: '/404', hidden: true }]

vuex配置中

// store/modules/permission.js 
const mutations = {
  SET_ROUTES: (state, routes) => {
/*
routes -> 接口中返回的数据
state.addRoutes -> 动态路由 + 404页面
state.routes -> 静态路由 + 动态路由 + 404页面

*/
    state.addRoutes = routes.concat(otherRoutes)
    state.routes = constantRoutes.concat(routes).concat(otherRoutes)
  }
}

const actions = {
  generateRoutes({ commit }) {
    return new Promise(resolve => {
      request('/routers') -> (res){
          res.data.routers
      }
    })
  }
}



导航守卫中

if ('第一次访问ip时') {

  await store.dispatch('permission/generateRoutes')


}