小程序分包

分包加载是小程序的一种优化策略,允许将代码拆分为多个部分,按需加载,提高加载速度并解决2M代码包限制。在app.json中配置subPackages定义分包结构。分包预下载可以通过preloadRule在特定网络条件下预先下载分包,如访问特定页面时在WiFi环境下下载good_pkg分包,提升页面访问速度。
摘要由CSDN通过智能技术生成

分包加载

分包加载有点类似 Vue 中的按需加载的功能,将小程序拆分成若干个部分叫做分包

  1. 在分包的基础上能够实现按需加载当前所需部分小程序代码,在一定程序能够提升小程序的加载速度

  2. 同时也能解决小程序代码包大小不能超过 2M 的限制

6.1 使用分包

分包从形式上来看就是将某些功能相关的页面及其依赖的资源放到独立的文件夹中,然后在 app.json 文件通过 

app.json文件

{
  "pages":[...],
  // 省略部分代码...
  "subPackages": [
    {
      "root": "分包的根路径",
      "name": "分包名称",
      "pages": [
        // 分页页面的路径
      ]
    }
  ]
}

subPackages 的值是数组类型,可以指定多个分包,每个分包含3部分信息,分别为:

  • root 分包对应的代码根目录,即分包的代码放在哪个文件夹中

  • name 分包的名称,可以省略

  • pages 分包中所包含的页面路径

下面咱们来定义一个分包,要求分包的代码位于 goods_pkg 目录中,分包中包含两个页面:

{
  "subPackages": [
    {
      "root": "good_pkg",
      "pages": [
        "pages/list/index",
        "pages/detail/index"
      ]
    }
  ]
}
```

上述代码中定义了一个分包的目录名为 good_pkg (这个名称可以任意起),这个分包下面包含了两个页面,分别是 pages/list/indexpages/detail/index

总结:

  1. 分包中的页面只有被访问到时小程序才会去下载相应的代码包

  2. 小程序分包对应的是主包,主包就是除了分包以外的代码,tabBar 的页面只能放在主包当中

  3. 使用分包也不是对代码体积完全没有限制:

  • 整个小程序所有分包大小不超过 20M

  • 单个分包/主包大小不能超过 2M

6.2 分包预下载

分包加载在打开小程序启动的时候只下载主包代码,分包并不会下载,因此能够提升小程序启动时的打开速度,分包的代码只有在访问到分包的页面时才去下载,这样用户就需要有一定时间的等待(一般不太影响),通过分包预加载技术可以实现提前去下载分包的代码,这样分包页面的访问速度也会得到提升。

小程序通过 preloadRule 配置需要预加载的分包,在 app.json 中进行配置:

  • 指定某个页面路径做为 key,含义是当访问这个页面时会去预下载一个分包

  • network 预下载分包的网络条件,可选值为 allwifi,默认为 wifi

  • packages 指定要预下载的分包名或根路径


app.json中添加 preloadRule 配置

{
  "preloadRule": {
    "pages/index/index": {   //在访问这个页面时
      "network": "wifi",
      "packages": ["good_pkg"]  //预加载这个包
    }
  },
}

上述的代码代表的含义是当用户访问到 pages/index/index 时,在 wifi 网络前提下预先下载 good_pkg 分包的代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值