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 Array.sort() 跨浏览器下需要考虑的问题
Dec 07 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
JavaScript操作select元素和option的实例代码
Jan 29 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
jQuery动态产生select option下拉列表
Mar 15 Javascript
详解React native全局变量的使用(跨组件的通信)
Sep 07 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
小程序hover-class点击态效果实现
Feb 26 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
常用的js方法合集
2017/03/10 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python Django批量导入数据
2016/03/25 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
python实现Virginia无密钥解密
2019/03/20 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
Python中的__init__作用是什么
2020/06/09 Python
Python魔术方法专题
2020/06/19 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
总经理秘书的岗位职责
2013/12/27 职场文书
管道维修工岗位职责
2013/12/27 职场文书
大学生就业策划书范文
2014/04/04 职场文书
党支部特色活动方案
2014/08/20 职场文书
委托培训协议书
2014/11/17 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
优秀高中学生评语
2014/12/30 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android
MySQL transaction事务安全示例讲解
2022/06/21 MySQL