vue router动态路由点击空白,webpack4 import动态导入 路由懒加载

1.路由点击后空白
注意路径是否加了 / (斜杆)

{
          path: '/menu',  //<--这边 /menu如果是menu就会造成空白
          component: Layout,
          redirect: '/menu',
          children: [
            {
              path: 'menu',
              component: () => import('@/views/menu/index'),
              name: 'menu',
              meta: { title: '菜单管理', icon: 'dashboard' , roles: [''] }
            }
          ]
        }

使用webpack4的import不支持变量引入,或者说import语法不支持
我在做动态路由时候,代码如下,从后台请求到了路由列表,渲染出不来

let menu = await httpGet("/roleMenu/findMenuByUser?id="+store.getters.id)
          let menus = JSON.parse(menu).data
          let routes = []
          for(var item of menus){
            var route = {}
            const url = `@/views/${item.url}/index`
            route.path = '/'+item.url + ''
            route.component = Layout
            route.redirect= '/'+item.url+''
            route.children = [{
              path:item.url,
              component:resolve => require([`@/views/${item.url}`],resolve),
              name: item.url+ '',
              meta: { title: item.name , icon: 'dashboard' , roles: [''] }
            }]
            routes.push(route)
          }

解决,其实其他地方不用多说,就是这个component 引入太坑了,就不能官方支持下吗,都es6了

component: () => import('@/views/menu/index'), //字符串写死,可以
component: () => import('@/views/'+item.url+'/index'), 变量不行,解析会说找不到module
component:resolve => require([`@/views/${item.url}`],resolve),可以
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值