使用uniapp开发小程序,在上传代码进行提交审核发布,会涉及到一个问题,就是小程序的大小有限制,不通过代码审核就发布不了。而分包是优化你代码大小的其中之一。
一、为什么要进行分包
首先,他受微信小程序的限制(不得不进行分包):
在开发小程序时,分包可以帮助开发者更好地管理和优化小程序的代码结构和加载性能。
二、分包有什么作用
-
降低首次加载时间:将较少使用的页面或组件放入分包中,可以减少主包的体积,从而加快小程序的首次启动速度。
-
按需加载:分包可以按照需求进行加载,避免一次性加载所有页面和组件,提高了小程序的运行效率和响应速度。
-
方便团队协作:在大型项目中,可以根据功能模块将相关的页面和组件放入不同的分包中,便于团队协作和管理。
-
提高开发效率:通过分包可以更好地组织代码结构,使得开发、维护和调试更加清晰和高效。
总之,分包可以帮助优化小程序的性能,提高开发效率,并使得项目结构更加清晰和灵活。
三、进行分包操作
我使用的是HBuilder X+微信小程序开发者工具进行开发。
1.首先在manifest.json中添加这段代码,开启分包。
"optimization": {
"subPackages": true
}
2. 对pages下面的页面进行处理。
pages页面一般存放启动页面和tabbar页面。
这是我的文件目录:
pages用于存放tabbar页面:
pagesA用于存放分包的页面,你起多少个分包都无所谓,到时候在pages里面的配置写对就行了。
这是我pages.json文件的配置:
{
// pages用于存放主包里面的东西一般包括启动页面,tabbar页面
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
}, {
"path": "pages/message/message",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/my",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
],
// 存放分包下的页面
"subPackages": [
{
"root": "pagesA",
"pages": [
{
"path": "page1/page1"
}
]
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {},
"tabBar": {
"list": [{
"text": "",
"pagePath": "pages/index/index",
"iconPath": "static/image/tabbarImg/chat.png",
"selectedIconPath": "static/image/tabbarImg/chat-active.png"
}, {
"text": "",
"pagePath": "pages/message/message",
"iconPath": "static/image/tabbarImg/clock.png",
"selectedIconPath": "static/image/tabbarImg/clock-active.png"
}, {
"text": "",
"pagePath": "pages/my/my",
"iconPath": "static/image/tabbarImg/my.png",
"selectedIconPath": "static/image/tabbarImg/my-active.png"
}]
}
}
如果有多个分包,按照这样写就行(也是官方的):
四、分包的注意事项
-
文件依赖关系:在划分模块时要注意各个子包之间的依赖关系,避免出现模块间的循环依赖或过度耦合。
-
资源路径:在配置分包路由和构建配置时,需要确保各个子包内部的资源路径配置正确,以便能够正确加载对应的资源文件。
-
性能优化:分包可以帮助减小首次加载体积,但也可能增加网络请求次数。需综合考虑用户体验和性能优化。
-
代码拆分:合理拆分业务逻辑和功能模块,避免一个子包中包含过多不相关的页面和组件,影响开发和维护效率。
-
兼容性考虑:部分低版本小程序可能不支持分包功能,需要在发布前进行充分测试,确保分包功能在各种客户端上正常运行。
-
调试问题:在使用分包时,需要留意各个子包的调试和错误排查,确保能够及时发现并解决问题。
具体根据实际项目的需要而定。