关于路由懒加载

2023-09-12 17:55:44

路由懒加载是一种优化技术,它是可以延迟加载应用程序的某些模块或者组件,而不是在初始加载时一次性加载所有内容,这样可以减少初始加载的文件体积,提高应用程序的加载速度

1.懒加载是在什么时候加载

路由懒加载是在用户访问相应的路由时才进行加载。它延迟加载路由组件,使得在初始加载时只加载必要的代码,而将其他路由的代码推迟到需要时再加载。
具体来说,在使用懒加载的情况下,当用户切换某个懒加载的路由时,浏览器会发送请求去获取该路由对应的javascript文件,一旦javascript文件加载完成,路由所需的组件将会被实例化病渲染到页面上
这种按需加载的方式有助于减少初始加载的文件体积,提升应用程序的初始加载速度。需要注意的是,路由懒加载需要配合构建工具(如Webpack)的支持来实现。构建工具会根据路由配置中的懒加载语法,将对应的路由组件拆分成独立的文件,然后在需要的时候加载

2.实现路由懒加载的方式

1.使用动态导入语法:在路由配置中,使用动态导入语法来指定需要懒加载的路由模块,使用import()函数来异步加载模块,返回一个promise对象

const Home = () => import('./components/Home.vue');
const About = () => import('./components/About.vue');

在上面的示例中,`Home``About` 组件将会被懒加载。当路由被访问时,对应的组件会在需要时按需加载。

2.配置Webpack的代码分割(Code Splitting):在使用 Vue CLI 创建的项目中,Webpack 已经默认配置了代码分割功能。Webpack 会根据动态导入的语法,将不同的模块或组件分割成多个独立的文件(chunk),并在需要时按需加载。这样可以确保只加载当前路由所需的模块,而不是整个应用程序的全部代码。

在打包构建时,Webpack 会生成多个包含不同模块的文件,每个文件对应一个路由或组件的懒加载。这些文件通常被命名为类似 chunk-[hash].js 的格式。

总之,路由的懒加载通过使用动态导入语法和Webpack的代码分割功能来实现。通过将路由对应的模块或组件拆分成多个独立的文件,可以实现按需加载,从而提高应用程序的加载性能。

3.懒加载中的chunkName是什么

在路由懒加载中,可以使用 chunkName(也称为 webpackChunkName)来为懒加载的路由组件指定一个名称。chunkName 是用于命名生成的懒加载文件的标识符。
通过指定 chunkName,可以更好地管理和识别生成的懒加载文件,特别是在开发环境和生产环境中。
以下是一个示例,展示了如何在路由懒加载中使用

const Home = () => import(/* webpackChunkName: "home" */ './components/Home.vue');
const About = () => import(/* webpackChunkName: "about" */ './components/About.vue');

在上面的示例中,通过注释的形式在动态导入语法中使用了 webpackChunkName。webpackChunkName 后面跟着一个字符串,用于指定懒加载文件的名称。
在构建过程中,Webpack 会根据 webpackChunkName 提供的名称为每个懒加载的组件生成对应的文件。例如,在上述示例中,会生成名为 home.js 和 about.js 的懒加载文件。
这样,通过为懒加载组件指定 chunkName,可以使生成的文件更可读和易于管理。在开发环境中,可以通过这些名称轻松识别所需的懒加载文件,而在生产环境中,可以根据 chunkName 进行代码分割和优化。
需要注意的是,chunkName 只是一个开发工具和构建工具使用的标识符,并不会在最终的应用程序中出现。它的主要目的是为了辅助开发和构建过程中的文件管理和优化。

更多推荐

[Linux 基础] linux基础指令(2)head,tail,Cal,find,grep,zip/unzip,tar,bc,uname

文章目录1、head指令2、tail指令引申:如何拿到中间行内容方案一:方案二:方案三:补充指令:(1)wc-l文件名(2)uniq文件名(3)sort文件名3、时间相关的指令4、Cal指令5、find指令:(灰常重要)-name补充:which、ctrl+r6、grep指令7、zip/unzip指令8、tar指令(重

摄像头工程师说 Camera - 数据格式 YUV 详解(2)

Camera数据格式YUV详解概述上一个小节我们聊到Camera项目项目中常用的几种图像颜色的表示方法,并重点讲述了常用的RAW、RGB、RGBA格式。YUV格式伴随着视频行业的快速发展,衍生出非常复杂YUV格式定义,比如YUV444、YUV422、YUV420、YUV420、YUV420SP、YUV422P等等格式。

【考研数学】线性代数第五章 —— 特征值和特征向量(3,矩阵对角化理论)

文章目录引言三、矩阵对角化理论3.1一般矩阵的相似对角化3.2实对称矩阵的相似对角化3.2.1实对称矩阵相似对角化定理3.2.2实对称矩阵相似对角化过程写在最后引言承接前文,我们来看看矩阵的对角化理论。我们前面提到对角化是在矩阵相似那里,若存在可逆矩阵PPP,使得P−1AP=ΛP^{-1}AP=\LambdaP−1AP

2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

2023年华数杯全国大学生数学建模A题隔热材料的结构优化控制研究原题再现:新型隔热材料A具有优良的隔热特性,在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。目前,由单根隔热材料A纤维编织成的织物,其热导率可以直接测出;但是单根隔热材料A纤维的热导率(本题实验环境下可假定其为定值),因其直径过小,长径比(长度

Java8实战-总结32

Java8实战-总结32重构、测试和调试为改善可读性和灵活性重构代码从命令式的数据处理切换到Stream增加代码的灵活性重构、测试和调试为改善可读性和灵活性重构代码从命令式的数据处理切换到Stream建议将所有使用迭代器这种数据处理模式处理集合的代码都转换成StreamAPI的方式。StreamAPI能更清晰地表达数据

Java面试

一、redis1、缓存-缓存穿透缓存穿透就是查询一个数据库不存在的数据,这样就会缓存不命中导致一直查询数据库解决方案:1、设置空值2、布隆过滤器布隆过滤器误判解决:1、redis分布式锁2、给布隆过滤器设置误判率2、缓存击穿缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个Key

MyBatis插件原理探究和自定义插件实现

文章目录插件简介Mybatis插件介绍Mybatis插件原理⾃定义插件插件接口⾃定义插件源码分析pageHelper分页插件通⽤mapper什么是通⽤Mapper如何使⽤插件简介⼀般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者⾃⾏拓展。这样的好处是显⽽易⻅的,⼀是增加了框架的灵活性。⼆是开发者可以结合实际需

【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(1)等价类划分法、边界值法、判定表法

【测试开发】用例篇(1)文章目录【测试开发】用例篇(1)1.测试用例的基本要素2.测试用例的设计方法2.1基于需求的设计方法(设计测试点)2.2等价类划分法(测试点=>测试用例)2.2.1测试中的等价类思想2.2.2有效等价类与无效等价类2.2.3等价类思想设计测试用例步骤2.3边界值法2.3.1边界点2.3.2边界值

NTN(七) Tracking areas

卫星提供的小区可以覆盖数百公里,trackingarea也会非常大,这时候UE需要进行mobilityregistrationupdating的场景就很少,但是由于当前trackingarea中会有大量的UE,因而会导致pagingloading比较大(与实际中UE的数量有关系)。smalltrackingarea会大

python

一、认识python(一)python起源python的创始人为GuidovonRossum(吉多·范·罗苏姆),俗称”龟叔“,荷兰人。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,

基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)

目录JAVA入门Java发展简史Java的核心优势Java各版本的含义Java的特性和优势Java程序的运行机制JVM、JRE和JDKJava开发环境搭建JDK下载和安装JDK环境变量的配置测试JDK安装成功开发第一个Java程序第一个程序常见错误第一个Java程序的总结和提升最常用DOS命令常用Java开发工具JAV

热文推荐