• uni-app开发经验分享十四:小程序超过2M限制的方法——分包加载


     
    起初小程序上线时,微信限制了代码包不能超过1MB,后来功能变大变成了2M了,限制大小是出于对小程序启动速度的考虑,
    希望用户在使用任何一款小程序时,都能获得一种“秒开”体验。但是,2MB也限制了小程序功能的扩展,小程序业务的发展
    可能需要更大的体积。为了解决这个问题,微信推出了—分包加载。

    小程序分包加载

    对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。

    目录结构:

    ├── app.js
    ├── app.json
    ├── app.wxss
    ├── packageA
    │ └── my
    ├── packageB
    │ └── list
    ├── pages
    │ ├── index
    │ └── logs
    └── utils
    

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

    {
      "pages":[
        "pages/index",
        "pages/logs"
      ],
      "subpackages": [
        {
          "root": "packageA",
          "pages": [
            "my"
          ]
        }, {
          "root": "packageB",
          "name": "pack2",
          "pages": [
            "list"
          ]
        }
      ]
    }
    

    分包预下载

    开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。对于独立分包,也可以预下载主包。
    分包预下载目前只支持通过配置方式使用,暂不支持通过调用API完成。

    配置方法

    预下载分包行为在进入某个页面时触发,通过在 app.json 增加 preloadRule 配置来控制

    {
      "pages": ["pages/index"],
      "subpackages": [
        {
          "root": "sub1",
          "name": "hello",
          "pages": ["index"],
        },
        {
          "root": "sub2",
          "pages": ["index"],
        }
      ],
      "preloadRule": {
        "sub1/index": {
          "packages": ["__APP__"]
        },
        "sub2/index": {
          "packages": ["hello"]
        }
      }
    }
    

    preloadRule 中,key 是页面路径,value 是进入此页面的预下载配置,每个配置有以下几项:

    字段类型必填默认值说明
    packages StringArray 进入页面后预下载分包的 root 或 name。__APP_表示主包。
    network String 否- wifi 在指定网络下预下载,可选值为:all: 不限网络,wifi: 仅wifi下预下载

    打包原则

    声明 subpackages 后,将按 subpackages 配置路径进行打包,subpackages 配置路径外的目录将被打包到 app(主包) 中tabBar 页面必须在 app(主包)内

    分包加载的低版本兼容

    由微信后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另外一份是整包的兼容代码。 新客户端用分包,老客户端还是用的整包,完整包会把各个 subpackage 里面的路径放到 pages 中。

  • 相关阅读:
    docker部署Nginx
    docker的常用命令
    centos上安装docker
    springcloud负载均衡及Ribbon
    maven下载私服jar
    spring security异常处理的三种方式
    spring security权限控制
    北京理工大学复试上机--2001A
    北京理工大学复试上机--2000
    PAT1067 试密码 (20分)——测试点4分析 一个易错点
  • 原文地址:https://www.cnblogs.com/smileZAZ/p/14105401.html
Copyright © 2020-2023  润新知