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 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
jquery实现页面虚拟键盘特效
Aug 08 Javascript
jQuery实现简单下拉导航效果
Sep 07 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
js实现瀑布流的三种方式比较
Jun 28 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
javascript Promise简单学习使用方法小结
May 17 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
node.js环境搭建图文详解
Sep 19 Javascript
vue实现鼠标经过动画
Oct 16 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 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
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
python字符串替换示例
2014/04/24 Python
Python import自定义模块方法
2015/02/12 Python
python安装Scrapy图文教程
2017/08/14 Python
python pyheatmap包绘制热力图
2018/11/09 Python
python解析yaml文件过程详解
2019/08/30 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
python利用opencv实现颜色检测
2021/02/23 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
幸福家庭标语
2014/06/27 职场文书
教导主任个人总结
2015/03/03 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
英镑符号 £
2022/02/17 杂记
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers