vue实现路由懒加载的3种方法示例


Posted in Javascript onSeptember 01, 2020

前言

路由懒加载在访问页面的时候非常重要,能够提高首页加载速度,避免出现加载时候白页,如果没有懒加载,webpack打包后的文件会非常大。

  • import按需加载(常用)
  • vue异步组件
  • webpack提供的require.ensure()

1、import按需加载(常用)

允许将不同的组件打包到一个异步块中,需指定了相同的webpackChunkName。

把组件按组分块

const A = () => import(/* webpackChunkName: "group-A" */ '@/A/A.vue')
const B = () => import(/* webpackChunkName: "group-A" */ '@/A/B.vue')
const C = () => import(/* webpackChunkName: "group-A" */ '@/A/C.vue')

注意:如果使用的是 babel,需要安装syntax-dynamic-import插件,才能使 babel 可以正确地解析语法。

2、vue异步组件

使用vue的异步组件 , 实现按需加载,每个组件生成一个js文件,实现组件的懒加载。

/* vue异步组件 */
{ path: '/A', name: 'A', component: resolve => require(['@/components/A'],resolve) }

3、webpack提供的require.ensure()

vue-router配置路由,使用webpack的require.ensure技术,实现按需加载。

这种情况下,多个路由指定相同的chunkName,会合并打包成一个js文件。

语法: require.ensure(dependencies: String[], callback: function([require]), [chunkName: String])

dependencies: 依赖的模块数组

callback: 回调函数,该函数调用时会传一个require参数

chunkName: 模块名,用于构建时生成文件时命名使用

const A= resolve => require.ensure([], () => resolve(require('@/components/A')), 'A');

注意:requi.ensure的模块只会被下载下来,不会被执行,只有在回调函数使用require(模块名)后,这个模块才会被执行。

总结

到此这篇关于vue实现路由懒加载的3种方法示例的文章就介绍到这了,更多相关vue路由懒加载内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 在线压缩和格式化收藏
Jan 16 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
Oct 21 Javascript
jquery图片放大镜功能的实例代码
Mar 26 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
Javascript自定义事件详解
Jan 13 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
Feb 14 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 Javascript
详解Vue 如何监听Array的变化
Jun 06 Javascript
ant design vue导航菜单与路由配置操作
Oct 28 Javascript
JQuery使用数组遍历跳出each循环
Sep 01 #jQuery
vue+echarts实现动态折线图的方法与注意
Sep 01 #Javascript
node.js 如何监视文件变化
Sep 01 #Javascript
JS JQuery获取data-*属性值方法解析
Sep 01 #jQuery
谈谈node.js中的模块系统
Sep 01 #Javascript
JavaScript浅层克隆与深度克隆示例详解
Sep 01 #Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
Sep 01 #Javascript
You might like
服务器端解压缩zip的脚本
2006/12/22 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python读取二进制mnist实例详解
2017/05/31 Python
python paramiko模块学习分享
2017/08/23 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
python实现计算器功能
2019/10/31 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
出纳岗位职责范本
2013/12/01 职场文书
公司财务自我评价分享
2013/12/17 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
教室标语大全
2014/06/21 职场文书
Golang的继承模拟实例
2021/06/30 Golang
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python