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


Posted in Javascript onAugust 26, 2019

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

  }
 ]
})

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

Javascript 相关文章推荐
JavaScript游戏之是男人就下100层代码打包
Nov 08 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
ThinkJS中如何使用MongoDB的CURD操作
Dec 13 Javascript
JS 实现计算器详解及实例代码(一)
Jan 08 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
Jan 25 Javascript
微信小程序中的上拉、下拉菜单功能
Mar 13 Javascript
vue项目部署到nginx/tomcat服务器的实现
Aug 26 #Javascript
vue-router路由模式详解(小结)
Aug 26 #Javascript
vue+moment实现倒计时效果
Aug 26 #Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 #Javascript
Moment.js实现多个同时倒计时
Aug 26 #Javascript
vue获取验证码倒计时组件
Aug 26 #Javascript
seajs和requirejs模块化简单案例分析
Aug 26 #Javascript
You might like
新版PHP将向Java靠拢
2006/10/09 PHP
PHP 事件机制(2)
2011/03/23 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
python批量修改ssh密码的实现
2019/08/08 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
django form和field具体方法和属性说明
2020/07/09 Python
Linux文件操作命令都有哪些
2015/02/27 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
认购协议书范本
2014/04/22 职场文书
教师业务培训方案
2014/05/01 职场文书
实验室的标语
2014/06/20 职场文书
迟到检讨书范文
2015/01/27 职场文书
房产证明范本
2015/06/19 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL