vue 路由懒加载中给 Webpack Chunks 命名的方法


Posted in Javascript onApril 24, 2020

最早的路由定义方式

import Vue from 'vue'
import VueRouter from 'vue-router'

import Home from '../views/Home.vue'
import About from '../views/About.vue'
import Login from '../views/Login.vue'

Vue.use(VueRouter)

const routes = [
 { path: '/', name: 'Home', component: Home },
 { path: '/about', name: 'About', component: About },
 { path: '/login', name: 'Login', component: Login }
]

const router = new VueRouter({
 routes
})

export default router

进化版路由组件懒加载以及定义 chunk name

...
const routes = [
 {
  path: '/',
  name: 'Home',
  component: () => import(/* webpackChunkName: "Home" */ '../views/Home.vue')
 },
 {
  path: '/about',
  name: 'About',
  component: () => import(/* webpackChunkName: "About" */ '../views/About.vue')
 },
 {
  path: '/login',
  name: 'Login',
  component: () => import(/* webpackChunkName: "Login" */ '../views/Login.vue')
 }
]
...

这样写起来是完全没有问题的,但是路由很多的情况下,这里的代码量就会增加,我们能不能把「路径」与「组件」绑定的操作放大循环里面去做呢

const routeOptions = [
 { path: '/', name: 'Home' },
 { path: '/about', name: 'About' },
 { path: '/login', name: 'Login' }
]
const routes = routeOptions.map(route => {
	return {
		...route,
		component: () => import(`@/views/${route.name}.vue`)
	}
})
const router = new VueRouter({
 routes
})

这样就优雅了不少,但是我们的 chunk name 还没有加上去,这个时候就要用到 webpack 2.6.0 以上的占位符[ index ]和[ request ]

const routeOptions = [
 { path: '/', name: 'Home' },
 { path: '/about', name: 'About' },
 { path: '/login', name: 'Login' }
]

const routes = routeOptions.map(route => {
 return {
  ...route,
  component: () => import(/* webpackChunkName: "[request]" */ `../views/${route.name}.vue`)
 }
})

const router = new VueRouter({
 routes
})

build 一下就能看到想要的 chunk 了

vue 路由懒加载中给 Webpack Chunks 命名的方法

到此这篇关于在 vue 路由懒加载中给 Webpack Chunks 命名的文章就介绍到这了,更多相关vue 路由懒加载内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 事件查询综合
Jul 13 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
jquery CSS选择器笔记
Mar 29 Javascript
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
用js的for循环获取radio选中的值
Oct 21 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
Oct 10 jQuery
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 #Javascript
基于Vue实现微前端的示例代码
Apr 24 #Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 #Javascript
小程序开发之模态框组件封装
Apr 23 #Javascript
详解Vue3中对VDOM的改进
Apr 23 #Javascript
微信小程序实现滑动操作代码
Apr 23 #Javascript
微信小程序图片右边加两行文字的代码
Apr 23 #Javascript
You might like
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
python 公共方法汇总解析
2019/09/16 Python
python实现图像拼接功能
2020/03/23 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
JPA面试常见问题
2016/11/14 面试题
介绍一下Ruby的特点
2013/01/20 面试题
司马光教学反思
2014/02/01 职场文书
汉语言文学职业规划
2014/02/14 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
员工离职感谢信
2015/01/22 职场文书
品德与社会教学反思
2016/02/24 职场文书
创业计划书之面包店
2019/09/17 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS