小程序-分包加载

本文介绍了微信小程序的分包加载机制,旨在优化首次启动下载时间和用户体验。分包允许按需加载,每个小程序包含主包和一个或多个分包。主包包含启动页面和公共资源,而分包在用户进入时下载。分包有大小限制,且有特定的引用规则。开发者可以通过app.json的subPackages字段声明分包结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。

在小程序启动时,默认会下载主包并启动主包内页面,当用户用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。

目前小程序分包大小有以下限制:

  • 整个小程序所有分包大小不超过 8M
  • 单个分包/主包大小不能超过 2M
优点
  • 用户在使用时按需进行加载
  • 可以优化小程序首次启动的下载时间
  • 进入主包页面时,需要下载的代码量小了很多,白屏时间更短,体验更佳
  • 在多团队共同开发时可以更好的解耦协作
关于主包
  • 第一次进入小程序,默认下载主包代码
  • 首页的 默认启动页面/TabBar 页面必须在 app(主包)内
  • 分包以外的所有代码,都会被打入主包
  • 分包内代码可以引用主包内代码
关于分包
  • 因为存在资源依赖关系,微信的机制是先下载主包,后下载分包
  • 分包目录不能在主包目录下面
  • 分包可以引用自己包内、主包内的资源,不能引用其他分包内的资源
使用方法

支持分包的小程序目录结构如下:

├── app.js
├── app.json
├── app.wxss
├── packageA
│   └── pages
│       ├── cat
│       └── dog
├── packageB
│   └── pages
│       ├── apple
│       └── banana
├── pages
│   ├── index
│   └── logs
└── utils

开发者通过在 app.json subPackages 字段声明项目分包结构:

{
  "pages":[
    "pages/index",
    "pages/logs"
  ],
  "subPackages": [
    {
      "root": "packageA",
      "pages": [
        "pages/cat",
        "pages/dog"
      ]
    }, {
      "root": "packageB",
      "pages": [
        "pages/apple",
        "pages/banana"
      ]
    }
  ]
}
api地址

https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/basic.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值