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 相关文章推荐
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
Nov 04 Javascript
浅析javascript的return语句
Dec 15 Javascript
JS检测移动端横竖屏的代码
May 30 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
Nov 09 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
May 09 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
是否有自动比较结构的方法
2015/06/03 面试题
物流合作计划书
2014/01/10 职场文书
机房搬迁方案
2014/05/01 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
爱护公共设施的标语
2014/06/24 职场文书
总结高并发下Nginx性能如何优化
2021/11/01 Servers
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python