欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-09 16:36:38
首先新建vue工程,一般我们不会特殊处理路由,但当项目页面越来越多,路由配置也会越来越大,路由文件就会变得不好维护 import vue from 'vue'...

首先新建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
   ]

  }
 ]
})

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