微信小程序--分包加载

407 阅读1分钟

分包加载

  • 在小程序启动时,默认会下载主包并启动主包内页面
  • 进入分包页面时,再加载对应分包
  • 小程序中必须有一个主包

分包配置:app.json subpackages 字段声明

代码片段

{
  "pages":[
    "pages/index",
    "pages/logs"
  ],
  "subpackages": [
    {
      "root": "packageA",//分包根目录
      "pages": [
        "pages/cat",
        "pages/dog"
      ]
    }, {
      "root": "packageB",
      "name": "pack2",//分包别名,分包预下载时可以使用
      "pages": [//分包页面路径,相对与分包根目录
        "pages/apple",
        "pages/banana"
      ],
      "independent":true,//分包是否是独立分包
    }
  ]
}

普通分包

  • 整个小程序所有分包大小不超过 8M
  • 单个分包/主包大小不能超过 2M
  • 主包包含默认启动页面以及分包需要的公共资源
  • 分包需要开发者自行配置,分包可引用主包及本包资源,不可调用其他分包的资源

独立分包

  • 分包不能依赖主包和其他分包的内容,包括js文件、template、wxss、自定义组件、插件等
  • 主包中app.wxss对独立分包无效
  • 独立分包中暂时不支持使用插件

分包预下载

  • 进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。

配置方法:app.json 增加preloadRule 字段

总结

优点

  • 打破了小程序2M的限制
  • 提升启动速度
  • 团队解耦协作

缺点 (针对老项目)

  • 分包之后,路径会发生变化,需要每个页面检索路径,很耗时间
  • 涉及依赖问题,需要重新梳理目录结构