什么是分包加载
分包加载是一种小程序优化技术。
小程序包拆分为主包和子包,其中主包包含了小程序的首页和一些常用基础功能模块,而子包则包含了其他功能模块和页面。
主包在用户第一次打开小程序时会被下载和加载,而子包则根据需要来动态下载和加载。子包在构建时打包成不同的分包,用户在使用时按需进行加载。
为什么要使用分包
主要是解决小程序官方限制了主包体积和总体积的大小,如果应用体积超限,我们将不能发布到应用官方,最终会上不了线。其次合理分包也会带来以下好处:
提高首页加载速度:随着小程序项目规模的增大,首页所需的代码和资源也会越来越多,导致首页加载时间变长,影响用户体验。通过分包,可以将部分代码和资源拆分到其他子包中,在首页加载时只需加载必需的核心代码,从而减少首页的加载时间。 优化性能:小程序的性能对用户体验至关重要。通过分包,可以将一些与首页无关的功能模块或页面、大型资源文件等拆分到子包中,子包的使用也可以帮助有效减少小程序包的体积,提升小程序的加载速度。 分包预下载:分包可以提前加载用户即将使用的功能模块,从而加快跳转到对应页面的速度。通过合理的分包策略和预下载机制,可以在用户交互前就将页面所需的代码和资源提前加载好,确保用户流畅的使用体验。
分包如何使用
需要按照功能拆分分包,并且每个分包都需要与其他包有依赖关系(可以通过 a 分包跳转到 b 分包)
开发者在小程序的配置文件 app.json
中,通过 subPackages
字段声明项目分包结构。
每个分包需要指定 root
字段、name
字段和 pages
字段
root
字段指定了分包的根目录,该目录下的所有文件都会被打包成一个独立的包name
字段为分包的名称,用于在代码中引用该分包pages
字段指定了该分包中包含的页面,可以使用通配符*
匹配多个页面
{
"subPackages": [
{
"root": "modules/goodModule",
"name": "goodModule",
"pages": [
"pages/list/list",
"pages/detail/detail"
]
},
{
"root": "modules/marketModule",
"name": "marketModule",
"pages": [
"pages/market/market"
]
}
]
}
独立分包
独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行。从独立分包中页面进入小程序时,不需要下载主包。当用户进入普通分包或主包内页面时,主包才会被下载。
如何配置独立分包:
开发者在app.json
中找到需要配置为独立分包的subpackages
字段
在该字段配置项中定义independent
字段声明对应分包为独立分包。
{
"subPackages": [
{
"root": "modules/marketModule",
"name": "marketModule",
"pages": [
"pages/market/market"
],
+ "independent": true
}
]
}
分包预下载
分包预下载是指访问小程序某个页面时,预先下载分包中的代码和资源,以提高用户的使用体验。当用户需要访问分包中的页面时,已经预先下载的代码和资源可以直接使用,通过分包预下载加快了页面的加载速度和显示速度
小程序的分包预下载需要在 app.json
中通过 preloadRule
字段设置预下载规则。preloadRule
是一个对象,对象的 key
表示访问哪个路径时进行预加载,value
是进入此页面的预下载配置,具有两个配置项:
network
在指定网络下预下载,可选值为:all
: 不限网络wifi
: 仅wifi下预下载packages
预下载的分包名称
"preloadRule": {
"pages/index/index": {
"network": "all",
"packages": ["modules/goodModule"]
},
"modules/marketModule/pages/market/market": {
"network": "all",
"packages": ["__APP__"]
}
}
总结
通过小程序分包优化,我们可以有效地提升小程序的性能和用户体验。通过合理划分和加载子包,减少了主包的体积和加载时间,使用户能够更快速地进入小程序并享受其功能。
优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。