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 相关文章推荐
json 定义
Jun 10 Javascript
读jQuery之十二 删除事件核心方法
Jul 31 Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
Jquery表单验证失败后不提交的解决方法
Oct 18 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
javascript读取文本节点方法小结
Dec 15 Javascript
canvas实现简易的圆环进度条效果
Feb 28 Javascript
简单实现jQuery轮播效果
Aug 18 jQuery
说说如何在Vue.js中实现数字输入组件的方法
Jan 08 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
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框架的性能
2008/01/10 PHP
PHP 数组实例说明
2008/08/18 PHP
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
Python深入学习之对象的属性
2014/08/31 Python
Python中多线程的创建及基本调用方法
2016/07/08 Python
python 网络编程详解及简单实例
2017/04/25 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
Python常见字典内建函数用法示例
2018/05/14 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Python中私有属性的定义方式
2020/03/05 Python
在python中求分布函数相关的包实例
2020/04/15 Python
如何使用Python调整图像大小
2020/09/26 Python
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
什么是Web Service?
2012/07/25 面试题
自愿离婚协议书范本
2014/09/13 职场文书
正规欠条模板
2015/07/03 职场文书
迎新年主持词
2015/07/06 职场文书
新学期感想
2015/08/10 职场文书