VUE路由动态加载实例代码讲解

2022-10-16,,,,

首先新建vue工程,一般我们不会特殊处理路由,但当项目页面越来越多,路由配置也会越来越大,路由文件就会变得不好维护

import vue from 'vue'
import router from 'vue-router'
import helloworld from '@/components/helloworld'
import home from '@/components/home'
import test1 from './test1.router.js'
import test2 from '@/components/children/test2'
import test3 from '@/components/children/test3'
 
vue.use(router)
 
export default new router({
 routes: [
  {
   path: '/helloworld',
   name: 'helloworld',
   component: helloworld
  },
  {
   path:'/',
   name:'home',
   component:home,
   children:[
    {
     path:'/test2',
     name:'test2',
     component:test2,
    },
    {
     path:'/test3',
     name:'test3',
     component:test3,
    }
   ]
 
  }
 ]
})

这是一个很简单的路由文件,我们先进性第一步优化,按一级菜单分类:

新建test1.router.js文件,放置一级菜单test1下的所有路由信息

export default {
  path:'/test1',
  name:'test1',
  component: () => import('@/components/children/test1'),
  children:[]
}

component: () => import('@/components/children/test1')这个是配置路由懒加载,优化首屏加载缓慢

在index.js里引入该文件

import vue from 'vue'
import router from 'vue-router'
import helloworld from '@/components/helloworld'
import home from '@/components/home'
import test1 from './test1.router.js'
import test2 from './test2.router.js'
import test3 from './test3.router.js'

vue.use(router)

export default new router({
 routes: [
  {
   path: '/helloworld',
   name: 'helloworld',
   component: helloworld
  },
  {
   path:'/',
   name:'home',
   component:home,
   children:[
    test1,
    test2,
    test3
   ]

  }
 ]
})

做到这块,已经可以满足很多项目了,路由文件已经很清晰了,但当项目较大,依然会不清晰

import vue from 'vue'
import router from 'vue-router'
import home from '@/components/home'

vue.use(router)


let routers = [];

let getallroutermsg = (paths) => {
  paths.keys().foreach(
    (key) => routers.push(paths(key).default)
  )
}
getallroutermsg(require.context('.',true,/\.router\.js/))
export default new router({
 routes: [
  {
   path:'/',
   name:'home',
   component:home,
   children:[
    ...routers
   ]

  }
 ]
})

以上就是本次介绍的全部知识点内容,感谢大家对的支持。

《VUE路由动态加载实例代码讲解.doc》

下载本文的Word格式文档,以方便收藏与打印。