分包加载
在用微信小程序制作点餐系统的过程中,面向的用户有两种:饭店顾客和商家。二者所需要的功能是不同的。这里可以将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时选择自己的角色分包加载即可。
分包加载的原理
在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中每个分包小程序必定含有一个主包,所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本,而分包则是根据开发者的配置进行划分。
在小程序启动时,默认会下载主包并启动主包内页面,如果用户需要打开分包内某个页面,客户端会把对应分包下载下来,下载完成后再进行展示。
目前小程序分包大小有以下限制:
- 整个小程序所有分包大小不超过 8M
- 单个分包/主包大小不能超过 2M
对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。
使用方法
如在点餐系统的实现中,支持分包的目录结构如下:
通常情况下我们将所有页面均放在pages目录下,而分包实现过程中我们将顾客和商家对应不同的代码放到不同的package下。
然后同普通情况,我们需要在app.json中用subPackages
字段声明项目分包结构,如在我们的点餐系统中,声明如下图:
注意事项
- 两个package中的JS文件不可以使用require、import,也不能共享img等资源
- 打包后,pages中的页面(最外层的pages字段)是小程序登陆最初看到的页面
- 首页的TAB页面(如果有的话)必须在app(主包)内