美文网首页
vue后端获取路由遇到的一些坑

vue后端获取路由遇到的一些坑

作者: passenger_z | 来源:发表于2020-07-28 15:24 被阅读0次

vue动态路由是指从后端拿到路由的配置信息,由前端加载,这样一些没有权限的页面组件信息拿不到,也就不会加载了,相比完全由前端控制来说比较安全

在进入路由前的操作

router.beforeEach((to, from, next) => {
  NProgress.start()
  if (to.path !== '/userLayout/login' && store.state.commonStore.routes.length === 0 && to.path !== '/403'&& to.path !== '/404') {
    store.dispatch('commonStore/getPermission')
      .then(res => {
        let temp = res.data["const routes"];
        for (let i = 0; i < temp.length; i++) {
          handleRouter(temp[i])
        }
        store.state.commonStore.routes = temp
        router.addRoutes(store.state.commonStore.routes)
        store.state.commonStore.menuList = res.data["const menuList"]
        next({
          ...to,
          replace: true
        })
      }).catch(err => {
        console.log(err)
      })
  } else {
    next()
  }
})

通过递归把页面的路径将页面异步挂载上去,这儿的一个坑大概花了我一天时间,不报错,就是显示空白。是我对webpack alias不太了解导致的

function handleRouter(r) {
  if (r['component']) {
    let path = r['component']
    path = path.replace('../', '')
    path = path.replace('.vue', '')
    r['component'] =
      resolve => require([`@/${path}.vue`], resolve);

  }
  if (r['children'])
    for (let i = 0; i < r['children'].length; i++) {
      handleRouter(r['children'][i])
    }
}

当时执行过这个方法之后vue devtools里观察发现组件已经挂载上去了,开发者工具里也不报错,跳转到空白页。在递归代码中可以发现我大费周章把组件路径截去了一部分,但是在require时又添加了上去,原因是@webpack alias在编译时会替换成src目录路径,但是从后端拿过来传变量的话他就不替换了

相关文章

  • vue后端获取路由遇到的一些坑

    vue动态路由是指从后端拿到路由的配置信息,由前端加载,这样一些没有权限的页面组件信息拿不到,也就不会加载了,相比...

  • Vue路由

    Vue路由 什么是Vue路由? 后端路由:即请求的URL地址都对应后端的接口,请求URL响应对应的服务器的资源。 ...

  • Vue3+TS Day21 - 源码继续、vue-router开

    Vue3+TS Day21 - 源码继续、vue-router开篇 一、路由的发展过程 1、后端路由 2、前后端分...

  • Vue-router路由

    vue 监听路由变化 vue-router 由hash向history模式变迁 什么是路由 后端路由:对于普通的网...

  • Vue路由

    这里说的Vue中的路由是指前端路由,与后端路由有所区别。我们可以使用url来获取服务器的资源,而这种url与资源的...

  • Vue(4)

    这里说的Vue中的路由是指前端路由,与后端路由有所区别。我们可以使用url来获取服务器的资源,而这种url与资源的...

  • 探究vue-router的源码

    一个vue路由的工作流程 前端路由和后端路由的区别 后端路由输入url --> 请求发送到服务器 --> 服务...

  • axios 的post请求坑

    最近在学习和实践Vue,搭建了vue+koa的前后端分离架构。vue请求采用的axios。但是遇到一个天坑,axi...

  • vue全家桶(2.1)

    3.路由切换 #3.1.vue-router路由切换 #3.1.1.什么是前端路由 路由这个概念最先是后端出现的,...

  • 前端常见面试题(六)@郝晨光

    Vue路由的实现原理 路由这个概念最初是由后端提出来的,在我们没有SPA单页面应用之前,使用的一直都是后端路由,根...

网友评论

      本文标题:vue后端获取路由遇到的一些坑

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