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的键盘控制事件说明
Apr 15 Javascript
WordPress JQuery处理沙发头像
Jun 22 Javascript
jquery easyui combox一些实用的小方法
Dec 25 Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 Javascript
jQuery实现强制cookie过期方法汇总
May 22 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
Apr 28 Javascript
微信小程序常见页面跳转操作简单示例
May 01 Javascript
Vue.js递归组件实现组织架构树和选人功能
Jul 04 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 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令牌 Token改进版
2008/07/18 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
【python】matplotlib动态显示详解
2019/04/11 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
大学四年职业生涯规划书范文
2014/01/02 职场文书
生产部岗位职责范文
2014/02/07 职场文书
学习交流会主持词
2014/04/01 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
宣传稿格式范文
2015/07/23 职场文书
公司员工培训管理制度
2015/08/04 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python