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 相关文章推荐
js 获取服务器控件值的代码
Mar 05 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
javascript 在firebug调试时用console.log的方法
May 10 Javascript
js数组的操作详解
Mar 27 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
jQuery中parents()方法用法实例
Jan 07 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
May 03 Javascript
JavaScript 中有关数组对象的方法(详解)
Aug 15 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
js实现窗口全屏示例详解
Sep 17 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文件操作的详细诠释
2013/06/21 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
python在不同层级目录import模块的方法
2016/01/31 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python使用mysql的两种使用方式
2018/03/07 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
特色冷饮店创业计划书
2014/01/28 职场文书
《草原》教学反思
2014/02/15 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
优秀经理获奖感言
2014/03/04 职场文书
会计人员岗位职责
2014/03/19 职场文书
岗位竞聘书范文
2014/03/31 职场文书
医学专业大学生求职信
2014/07/12 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
环卫工作汇报材料
2014/10/28 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
贫困证明怎么写
2015/06/16 职场文书
MySQL数据库 任意ip连接方法
2022/05/20 MySQL