小程序系列--如何使用分包加载

在小程序开发的过程中,小程序的体积会随着版本的迭代变的越来越大,这时候我们就希望能够将小程序分成多个包从服务器下载,这样既可以加快首屏的渲染也便于后续按需加载的实现。小程序在微信客户端 6.6.0,基础库 1.7.3 及以上版本开始支持 分包功能。
在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个
主包
。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。
在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。

配置方法

配置例子

{
  "pages": ["pages/index", "pages/shopcart"],
  "subpackages": [
    {
      "root": "packageA",
      "pages": ["pages/mine", "pages/order"]
    },
    {
      "root": "packageB",
      "name": "pack2",
      "pages": ["pages/detail", "pages/pay"]
    }
  ]
}
├── app.js
├── app.json
├── app.wxss
├── packageA
│   └── pages
│       ├── mine
│       └── order
├── packageB
│   └── pages
│       ├── pay
│       └── detail
├── pages
│   ├── index
│   └── shopcart
└── utils

打包原则

  • 声明 subpackages 后,将按 subpackages 配置路径进行打包,subpackages 配置路径外的目录将被打包到 app(主包) 中
  • app(主包)也可以有自己的 pages(即最外层的 pages 字段)
  • subpackage 的根目录不能是另外一个 subpackage 内的子目录
  • tabBar 页面必须在 app(主包)内

引用原则

  • packageA 无法 require packageB JS 文件,但可以 require app、自己 package 内的 JS 文件
  • packageA 无法 import packageB 的 template,但可以 require app、自己 package 内的 template
  • packageA 无法使用 packageB 的资源,但可以使用 app、自己 package 内的资源
### uni-app 小程序分包加载实现方法 #### 配置 `pages.json` 文件 为了实现小程序分包加载,需在项目的根目录下编辑 `pages.json` 文件。此文件用于定义应用的页面路径以及窗口表现。对于分包设置而言,主要关注的是 `subPackages` 或者 `subpackages` 字段。 ```json { "pages": [ { "path": "index/index", "style": {} } ], "globalStyle": {}, "subPackages": [ { "root": "packageA", // 子包名 "pages": [ { "path": "page1/page1" }, { "path": "page2/page2" } ] } ] } ``` 上述 JSON 片段展示了如何声明一个名为 `packageA` 的子包及其内部包含的具体页面[^3]。 #### 创建分包结构 按照所设定的 `root` 属性创建对应的文件夹作为各个独立的分包单元。每个分包都应有自己的入口页面和其他必要的资源文件(如 JavaScript、CSS 及图片)。例如: ``` project-root/ ├── pages/ │ └── index.vue (主包中的首页) └── packageA/ ├── page1/ │ └── page1.vue └── page2/ └── page2.vue ``` 这种布局有助于保持项目清晰有序,并使得不同部分可以被单独打包和管理[^4]。 #### 访问分包内的资源 当访问某个位于分包里的页面时,框架会自动按需下载该分包的内容而不影响其他未涉及的部分。这意味着只有当用户导航到特定分包中的某一页时才会触发相应数据请求,进而减少了初次启动所需的时间开销并提高了整体用户体验[^1]。 #### 处理跨平台兼容性 值得注意的是,虽然这里讨论的重点在于微信小程序环境下的实践操作,但是利用 UniApp 开发工具构建的应用同样适用于其他主流的小程序平台——包括但不限于 QQ 小程序、百度智能小程序等。因此,在实际开发过程中应当遵循官方文档给出的最佳做法以确保良好的多端适配效果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值