vue路由自动生成

在写vue项目时,遇到页面跳转很多,需要配置很多路由,一个一个路由配置的话非常麻烦,修改起来也不方便。如下所示:

export default new Router({
  routes: [
      {path: '/', name: 'home', component: require('@/pages/home.vue')},
      {path: '/demo1', name: 'demo1', component: require('@/pages/demo1.vue')},
      {path: '/demo2', name: 'demo2', component: require('@/pages/demo2.vue')},
      {path: '/demo3', name: 'demo3', component: require('@/pages/demo3.vue')},
      {path: '/demo4', name: 'demo4', component: require('@/pages/demo4.vue')},
      {path: '/demo5', name: 'demo5', component: require('@/pages/demo5.vue')},
      {path: '/demo6', name: 'demo6', component: require('@/pages/demo6.vue')},
      {path: '/demo7', name: 'demo7', component: require('@/pages/demo7.vue')},
    {
      path: '*',
      redirect: '/'
    }
  ]
});

通过vue的模块系统实现路由自动生成。方法如下:

1. 自动导出当前文件夹中的所有vue文件

const files = require.context('.', false, /\.vue$/)

const pages = {}


files.keys().forEach(key => {

pages[key.replace(/(\.\/|\.vue)/g, '')] = files(key).default

})


export default pages

2. 构造路由表

import Vue from 'vue'

import Router from 'vue-router'

import pages from '@/pages' // 页面文件目录


Vue.use(Router)


let routes = [];

Object.keys(pages).forEach(item=>{

    routes.push({

        path: `/${pages[item].name}`,

        name: pages[item].name,

        component: pages[item]

    })

});

3. 配置路由

export default new Router({

routes: [
    ...routes,

    {

        path: '*',

        redirect: '/'

    }]

});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值